Sockets, Computer Networking

Assignment Help:

When programming a server or a client, we have to deal with port numbers and IP addresses, but we usually do this through an abstraction called a socket. Sockets are the standard API for network programming; they are the abstraction which we use to describe a connection, i.e. a duplex communication. The typical way of creating and using sockets, in C, is the following:

// Client side ------------------------------------------------------------

struct addrinfo *addr;

int fd = socket(AF_INET, SOCK_STREAM, 0); // fd is the socket's filehandle
getaddrinfo("www.cnn.com", "http", NULL, &addr); // converts hostname to IP address
connect(fd, addr->ai_addr, addr->ai_addrlen); // connect to remote host
send(fd, send_buf, len, 0); // now send then receive data
...
recv(fd, recv_buf, len, 0);

// Server side ------------------------------------------------------------

struct addrinfo *addr, *remote_addr;
int fd = socket(AF_INET, SOCK_STREAM, 0);

// fd is the socket's filehandle getaddrinfo(NULL, "http", NULL, &addr); // convert service to port number ("ht bind(fd, addr->ai_addr, addr->ai_addrlen); // bind socket to a particular port nu listen(fd, 1); // listen for connections. Second argument is # of allowable waiting

// Now accept connection on socket fd; when a connection comes in, we'll move it to int newfd = accept(fd, remote_addr->ai_addr, &(remote_addr->ai_addrlen));

// we process the accepted connection on newfd, with recv() and send(),

// and at the same time, we'll keep using fd to accept other incoming connections


Related Discussions:- Sockets

Electronic mail - application layer, Electronic Mail One  of the  most...

Electronic Mail One  of the  most popular internet  services is electronic mail ( e mail). At  the beginning  of the internet era teh message sent by  electronic  mail were sh

Inductor, #clasification of inductor

#clasification of inductor

Sate 802.11 architecture, 802.11 Architecture ESS (Extended service set...

802.11 Architecture ESS (Extended service set) two or more BSSs with APs connected through a distribution system (wired LAN) in an infrastructure network

Digital encoding scheme, what are the applications of different encoding sc...

what are the applications of different encoding schemes

Application to exploring network packet capture, This lab introduces basic ...

This lab introduces basic network capture concepts using Wireshark. Setup You will need a PC running Windows for this lab and you will need to install the Wireshark softwar

Low-earth-orbiting leo satellites , LOW-Earth Orbiting have more advantageo...

LOW-Earth Orbiting have more advantageous in Mobile based communication devices like PDAs, Cell phones and automobile communications. The LOW-Earth Orbiting is a satellite of orbit

What are the benefits of layered network, Q. What are the benefits of layer...

Q. What are the benefits of layered network? Ans: Basic benefits of layered network are given below: -  Complex systems will be broken down into understandable subsystems.

Why you require connecting two computers for file sharing, You require conn...

You require connecting two computers for file sharing. Is it possible to do this without using a hub or router? Yes, you can connect two computers together using only one cable

What is session layer in osi model, Q. What is Session Layer in osi model? ...

Q. What is Session Layer in osi model? Session Layer : Allows two applications to establish, utilize and disconnect a connection  between them known as a session. Gives for na

Describe about data communications, Q. Describe about Data Communications? ...

Q. Describe about Data Communications? - Data - Information presented in whatsoever form is agreed upon by the parties creating and using the data - Data Communications - ex

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd