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

Explain clustering support, Explain clustering support Clustering suppo...

Explain clustering support Clustering support refers to the ability of a network operating system to link multiple servers in a fault-tolerant group. The main purpose of this i

Full form of httpd, Full form of HTTPd It stands for HTTP daemon. HT...

Full form of HTTPd It stands for HTTP daemon. HTTPd is the program run on a UNIX platform to establish a Web server. On other platforms, such as Microsoft Windows NT, the We

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

What is a private ip address, What is a private IP address? Private IP ...

What is a private IP address? Private IP addresses are allocated for use on intranets. These addresses are used for internal networks and are not routable on external public ne

What is clipper, Clipper is a compiler that was well recognized at the time...

Clipper is a compiler that was well recognized at the time of80's and early times of 90's. We can build DOS based applications (even large applications too) using clipper. There is

Synchronous tdm and statistical tdm, Difference between synchronous tdm and...

Difference between synchronous tdm and statistical tdm

What are netbios and netbeui, What are NETBIOS and NETBEUI? NETBIOS is ...

What are NETBIOS and NETBEUI? NETBIOS is a programming interface that permits I/O requests to be sent to and received from a remote computer and it hides the networking hardwar

State the specification of high-end server, State the specification of high...

State the specification of high-end server A mid-range or high-end server with the following specifications would be sufficient for a medium to large organisation: A Pentiu

Factor causing parallel overheads, Factor Causing Parallel Overheads F...

Factor Causing Parallel Overheads Figure clearly explains that the performance metrics are not able to achieve a linear curve in comparison to the enhance in number of process

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