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

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

Explain about the middleware support, Explain about the Middleware support ...

Explain about the Middleware support All the connectivity interface related tools come under the category of middleware. Middleware provides the link for data exchange between

C-band earth station , Normal 0 false false false EN-US...

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

What is frequency diversity, What is Frequency diversity Due to the tra...

What is Frequency diversity Due to the transmission is spread out over a larger bandwidth, frequency-dependent transmission impairments, like as noise bursts and selective fadi

What is backbone network, What is backbone network? A backbone network ...

What is backbone network? A backbone network is a centralized infrastructure that is intended to distribute dissimilar routes and data to various networks. It also handles mana

Which layer is responsible for negotiating data transfer , Which layer is r...

Which layer is responsible for negotiating data transfer syntax? Ans) The Presentation layer does the following: Manages data representation conversions, or data transfer syntax

What are called fat clients and fat servers, If the amount of the applicati...

If the amount of the application runs on the Client side, then it is Fat clients. It is mostly used for decision support and personal software. If the amount of the application

What is groupware server, What is Groupware server? Groupware addresses...

What is Groupware server? Groupware addresses the management of semi-structured information like text, image, mail, bulletin boards and the flow of work. These Client/Server sy

Low-earth-orbiting leo satellites , LOW-Earth Orbiting have more advantageo...

LOW-Earth Orbiting have more advantageous in Mobile based communication devices like PDAs, Cell phones and automobile communications. The LOW-Earth Orbiting is a satellite of orbit

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