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

When would we use isdn, We use IDSN supports high speed voice, data and vid...

We use IDSN supports high speed voice, data and video and is a good choice for many small businesses.

Networks classification - point to point network , Normal 0 fal...

Normal 0 false false false EN-IN X-NONE X-NONE Networks classification

Timing in mpi program, MPI_Wtime ( ) returns elapsed wall-clock time in sec...

MPI_Wtime ( ) returns elapsed wall-clock time in seconds as some arbitrary point in past. Elapsed time for program segment is specified by the difference between MPI_Wtime values a

Determine in detail about the world wide web, Determine in detail about the...

Determine in detail about the world wide web The latest has been Web commerce that is currently making big news, and many businesses are setting up electronic shops on the Inte

Give the description of security tools, Give the Description of security to...

Give the Description of security tools Software are coming up in which the user can select the kind of security measure required to be taken for encryption. One such example is

What is multicast routing, What is multicast routing? Sending a message...

What is multicast routing? Sending a message to a group is known as multicasting, and its routing algorithm is known as multicast routing.

Explain token bus sublayer protocol, Token Bus Sublayer Protocol Se...

Token Bus Sublayer Protocol Send for some time then pass token If no data after that pass token right away Traffic classes 0, 2, 4 and 6 (highest) Internal s

IP datagram, On a LAN where are IP Datagram transported?

On a LAN where are IP Datagram transported?

How a token ring networks allows sharing of bandwidth, Question: (a) E...

Question: (a) Explain how a Token Ring networks allows sharing of bandwidth (access control). (b) (i) CSMA/CD is not appropriate for wireless communication. Explain wh

Source to destination data transfer - datagram approach, Source to Destinat...

Source to Destination Data Transfer - Datagram approach - Each packet is treated independently. - Every pkt will take its own path to reach the destination. - There i

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