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

Data sources in circuit-switching mode of operation, A data link is shared ...

A data link is shared by 20 data sources. Each source is active only 10% of the time and produces 1Mbps data rate when active. The sources start their transmissions at random. a

Illustrate the model for network security, Q. Illustrate the Model for Netw...

Q. Illustrate the Model for Network Security? - A message is transferred from one party (Principal) to another. - A logical information channel is founded between the t

What is lrc, What is LRC? In LRC, a block of bits is separated into row...

What is LRC? In LRC, a block of bits is separated into rows and a redundant row of bits is added to the whole block. It can detect burst errors. If two bits in one data unit ar

Protocol gets a hardware address from a known ip address, Normal 0 ...

Normal 0 false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4

Program to reload the router -ccna, Cable, Erase, and Reload the Router ...

Cable, Erase, and Reload the Router Step 1: Cable the network. Cable a network that is same to the one in the topology diagram. Step 2: Clear the configuration on the rou

Routing table - network layer and routing , Routing Table A routing  t...

Routing Table A routing  table has columns  for at  three types o information  the network  ID  the cost  and the  ID of the  next  router. The  network  ID is the final  desti

Difference between a straight-through and crossover cable, What is the diff...

What is the difference between a straight-through and crossover cable? A straight-through cable is used to connect computers to a hub, switch, or router. A crossover cable is u

Explain point-to-point connection type, Explain Point-to-Point connection t...

Explain Point-to-Point connection type. Many point-to-point connections are associated with modems and PSTN (Public Switched Telephone Network) communications.

Explain systolic array interconnection networks, Systolic Array : This inte...

Systolic Array : This interconnection network is a kind of pipelined array architecture and it's intended for multidimensional flow of data. It is used for applying fixed algorithm

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