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

What are the key functions of data link layer, What are the key functions o...

What are the key functions of data link layer? Data link layer transfers data in a structured and reliable manner so that the service given by the physical layer is utilized by

Checksum - transport layer, Checksum This 16 bits field contain  th...

Checksum This 16 bits field contain  the checksum. The  calculation of the   checksum for TCP follows  the same  procedure as the  described for  UDP. However the inclusion

Programs for implement tools for digital sound, You must write the 6 progra...

You must write the 6 programs described below. All of these are command-line tools that follow the Unix style of passing switches and arguments on the command line. As such, your p

Ethernet interface on the cisco router , As a system administrator, you req...

As a system administrator, you require to set up single Ethernet interface on the Cisco router to permit for both sap and Novell-ether encapsulations. Which set of commands will ac

What is primary and secondary ring - fddi, What is primary and secondary ri...

What is primary and secondary ring One of the two FDDI rings is known as the primary ring; the other is called the secondary ring. The primary ring is utilized for data tra

Determine power dissipated in resistor, Question: With Vout not connect...

Question: With Vout not connected to any additional circuitry, what power is dissipated in the 7 kW resistor?

Discuss network designs, This assignment will assess parts of objectives 2-...

This assignment will assess parts of objectives 2-6 from the subject outline: 1 Explain the principles of logical design 2 Discuss the strengths and weaknesses of various net

Computer networks - fundamentals of networks , Computer Networks A com...

Computer Networks A computer  networks  can be defined as set of computer that  interact  among  the individual  computers sharing  resources or information. Reference models

What is crc and checksum, What is CRC and Checksum CRC (Cyclic redudan...

What is CRC and Checksum CRC (Cyclic redudancy check) CRC, is the most powerful of the redundancy checking methods, is based on binary division. Checksum Checksum

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