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

TCP, TCP creates a reliable data transfer service, in addition to IP''s unr...

TCP creates a reliable data transfer service, in addition to IP''s unreliable best-effort service. Study the related sections of the text, and in your own words, summarize how TCP

Simple Pendulum, Give me a wide idea about simple pendulum and its types wi...

Give me a wide idea about simple pendulum and its types with equation and tables as usual assignment?

System - network administrator, The program must be well documented which i...

The program must be well documented which includes meaningful variable and subroutine names ("self documenting code") along with comments in the code. The following block of code w

Network design with configuration, WHAT DOES IT COST..THIS IS OF 700 WORDS ...

WHAT DOES IT COST..THIS IS OF 700 WORDS ASSIGNMENT...

What is bens network, Q. What is Bens Network? It's a non-blocking netw...

Q. What is Bens Network? It's a non-blocking network. It's a special type of Clos network where first and last stage consists of  2×2 switches (for n input  and m output networ

Working of internet, As discussed in the earlier section each computer link...

As discussed in the earlier section each computer linked to the Internet has a unique address. Let's assume your IP address is 1.2.3.4 & you wish to send a message to the computer

Network, do you do paraphrase

do you do paraphrase

What is the use of a default gateway, What is the use of a default gateway?...

What is the use of a default gateway? Default gateways give means for the local networks to connect to the external network. The default gateway for connecting to the external

What is meant by symmentric multiprocessing (smp), It treats all processors...

It treats all processors as equivalent. Any processor can do the work of any other processor. Applications are separated into threads that can run simultaneously on any available p

What is the structure of ip multicast address, Question : (a) Several ...

Question : (a) Several techniques are now available for users to connect to the Internet. (i) A modem is commonly used to dial up to the Internet. Why is a modem needed fo

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