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

Name some common or popular databases, Name some common or popular database...

Name some common or popular databases Many of the popular databases also provide support of and to the middleware and consequently, the term middleware has become lesser known.

Connection-oriented service, The connection-oriented service process for ne...

The connection-oriented service process for networking is same to the manner in which telephones are used. This is shown as follows: A caller dials a number of the receiver. The

link layer - computer network, Link Layer To move  to packet  from o...

Link Layer To move  to packet  from one node( host  or packet swtich0 to  net node  in the  route the network  layer  relies  on the  services  of the link layer. Particularl

Security impact of not having a public key infrastructure, (a) You are pro...

(a) You are provided with the following: A. An RSA facility complete with public/private key pair B. A CBC (cipher block chaining) facility incorporating the IDEA block ciph

Advantages and disadvantages of client-server method, 1. Write a critical a...

1. Write a critical analysis of the client/server vs. service architecture method for developing service architectures.  You must explain what the client/server method is in terms

Network, What are the advantages of logging more information to the alerts ...

What are the advantages of logging more information to the alerts filestion #Minimum 100 words accepted#

What is meant by symmentric multiprocessing, What is meant by Symmentric Mu...

What is meant by Symmentric Multiprocessing (SMP)? It treats all processors as equal. Any processor can do the work of any other processor. Applications are divided into thread

What is dos, What is DoS? A do, or Denial-of-Service attack, is an atte...

What is DoS? A do, or Denial-of-Service attack, is an attempt to stop users from being able to access the internet or any other network services. Such attacks might be come in

Which protocol resolves an ip address to a mac address, The Address Resolut...

The Address Resolution Protocol (ARP) sends out a broadcast to verify the MAC address from the IP address.

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