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

What is project 802, What is Project 802? It is a project begins by IEE...

What is Project 802? It is a project begins by IEEE to set standards that enable intercommunication among equipment from a variety of manufacturers. It is a way for specifying

Determine about the tree topology, Determine about the Tree Topology A ...

Determine about the Tree Topology A generalization of the bus topology. The transmission medium is a branching cable with no closed loops. The tree layout begins at a point kno

Combine subtitution and transposition, how to own cipher to encrypt and dec...

how to own cipher to encrypt and decrypt message by combine both substitution ans transposition algorithm using c program

Simple mail transfer protocols (smtp), Simple Mail Transfer Protocols (SMTP...

Simple Mail Transfer Protocols (SMTP) The application  layer  protocols  for electronic  mail is SMTP( Simple mail  transfer protocols). Internet  electronic  mail  has man

What to do to connection with external communication, What to do to connect...

What to do to connection with external communication For dealing with external communication, the Web server must have a static IP. Having a static IP could also be a problemat

What are the station types of bss, Station Types No-transition mobility...

Station Types No-transition mobility moreover stationary or moving only inside a BSS BSS-transition mobility is able to move from one BSS to another, but confined inside one

Operating system for server, Operating system for Server Since 1994, w...

Operating system for Server Since 1994, when the original pair of web servers - NCSA HTTPd and CERN HTTPd , were proposed, dozens of commercial and shareware programs have

The application layer - fundamentals of networks, The application layer ...

The application layer This  layer enables users  to access the  network  by providing  a few  services to the user some of the protocols and services available to the  user ar

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