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

Explain about the cell splitting, Cell splitting  In practice, the dist...

Cell splitting  In practice, the distribution of traffic and topographic features is not uniform, and this shows opportunities of capacity enhance. Cells in areas of high usage

Show example on check sum, Q. Show Example on Check Sum? Data: 10...

Q. Show Example on Check Sum? Data: 10101001 00111001 Computing Checksum: 10101001 00111001 --------------- Sum 11100010 Receiver Side: 10101

Distinguish between flow control and congestion control, Question: (a) ...

Question: (a) Distinguish between Flow Control and Congestion Control. (b) Explain clearly how a URL is resolved by a computer. (c) List one application that uses TCP

Acknowledgment number - transport layer, Acknowledgment number This 32...

Acknowledgment number This 32 bit  field  defines  the byte  number that the  from the  segment is expecting to  receive the segment is expecting to receive from the other par

Des key, Assume the following 64-bit DES key (expressed in hexadecimal): FE...

Assume the following 64-bit DES key (expressed in hexadecimal): FEFE FEFE FEFE FEFE (a) What is the term for such a key? (b) State the value of each of the 48-bit round keys

Write a long note on internet and privacy, Question 1 Write a long note on...

Question 1 Write a long note on computers in television development Question 2 Write a long note on the ‘Steadicam' Question 3 Write a long note on Internet and pr

What does the user datagram protocol (udp) , UDP is connectionless, and doe...

UDP is connectionless, and does not give error checking. But remember, error checking can happen at other layers too.

State the methods to keep the attackers at bay, State the methods to keep t...

State the methods to keep the attackers at bay Another best methods to keep the attackers at bay is known as network address translator or NAT. The philosophy behind the design

Describe the importance of backups, Question: (a) Describe the importa...

Question: (a) Describe the importance of backups and the use of antivirus software. (b) With the help of an example/ illustration, explain the term encryption and explain

Difference between tftp and ftp application layer protocols, What is the di...

What is the difference between TFTP and FTP application layer protocols? The Trivial File Transfer Protocol (TFTP) allows a local host to obtain files from a remote host but d

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