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

Illustrate data-link layer in osi layers model, Q. Illustrate Data-Link Lay...

Q. Illustrate Data-Link Layer in osi layers model? Data-Link Layer: This layer takes the data messages or frames from the Network Layer and gives for their actual transmissio

Explain in dteail about the intranet, Explain in dteail about the intranet ...

Explain in dteail about the intranet The first Web browser was called Mosaic, and the HTML concept, although not a new one, has accelerated data access and research. In short,

Dns message - application layer, DNS Message There are  the only  two ...

DNS Message There are  the only  two kinds  of DNS message DNS query and reply messages. Further mote both query  and reply message have  the same  format  as shown in figure.

Public key cryptography and private key cryptography, Question: a) Di...

Question: a) Differentiate between the following key terms used in any e-banking security system: (i) Authorisation v/s Authentication. (ii) Data Integrity v/s Data Conf

Define bandwidth and latency, Define Bandwidth and Latency? Network per...

Define Bandwidth and Latency? Network performance is calculated in Bandwidth (throughput) and Latency (Delay). Bandwidth of a network is given by the number of bits that can be

What is a dns resource record, What is a DNS resource record? A resourc...

What is a DNS resource record? A resource record is an entry in a name server's database. There are various types of resource records used, containing name-to-address resolutio

Physical media - computer network, Physical Media In order  to define ...

Physical Media In order  to define what is meant by a physical medium let us reflect on the brief life of a bit. Consider  a bit travelling from one end system through a serie

What are the various security measures, What are the various security meas...

What are the various security measures A matter of prime concern to companies is the overheads in the form of huge investment on extra hardware and software. It is quite possi

Telecommunication switching system, if the signal input to an amplifier is ...

if the signal input to an amplifier is 0 dBm what is the power output in mW if the gain of the amplifier is 20 dB ?

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