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

Describe the importance of backups, Question: (a) Describe the importa...

Question: (a) Describe the importance of backups and the use of antivirus software. (b) With the help of an example/ illustration, explain the term encryption and explain

Connect a router and computer with a console cable- ccna, Connect a Router ...

Connect a Router and Computer with a Console Cable Step 1 : Set up a basic physical connection. Connect the console (rollover) cable to the console port on the router. Link

Distinguish between flow control and congestion control, Question: (a) ...

Question: (a) Distinguish between Flow Control and Congestion Control. (b) Explain clearly how a URL is resolved by a computer. (c) List one application that uses TCP

What is groupware server, Groupware addresses the management of semi-struct...

Groupware addresses the management of semi-structured information like text, image, mail, bulletin boards and the flow of work. These Client/Server systems have people in direct co

Explain the term- encryption, Explain the term- Encryption Because all ...

Explain the term- Encryption Because all of the user traffic, as well as control traffic, is digitized in second generation systems, it is a relatively simple matter to encrypt

Mips instruction - set and explain the restrict pipelining, 1.  Consider th...

1.  Consider these two potential additions to the MIPS instruction set and explain how they would restrict pipelining. a)  cp d1(r1), d2(r2) copy contents of word at address

WOrkstation, Interdepences of workstation hardware and software

Interdepences of workstation hardware and software

What is the mesh network, A network in which there is multiple network link...

A network in which there is multiple network links among computers to provide multiple paths for data to travel.

database server in client server environment, Normal 0 false ...

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

What is data traffic, Q. What is Data traffic? Data traffic ...

Q. What is Data traffic? Data traffic Peak data rate : max data rate of the traffic Average data rate = (amount of data)/time Maximum Burst size: max. l

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