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 circuit switching, Circuit switching is a term used in communicati...

Circuit switching is a term used in communication where the communicating nodes will be connected through a dedicated channel before any communication may take place. The methodolo

Types of topologies, TWO DIFFERENT KINDS OF TOPOLOGIES: LOGICAL TOPOL...

TWO DIFFERENT KINDS OF TOPOLOGIES: LOGICAL TOPOLOGY:  It is described by the specific network technology. PHYSICL TOPOLOGY: It relays on the wiring scheme. NE

Different technologies involved in establishing wan links, What are the dif...

What are the different technologies involved in establishing WAN links? Analog connections - using conventional telephone lines; Digital connections - using digital-grade telep

Different type of networking and internetworking device, What is the differ...

What is the different type of networking / internetworking devices? Repeater: Also called a regenerator, it is an electronic device that operates only at physical layer. I

Explain any three most important gsm identifiers, Question 1 A) Explain br...

Question 1 A) Explain briefly the advantages wireless communication systems                   B) What is a cellular network? Question 2 Explain fundamental architecture of

What layer can optionally support reliability, Ans) The Transport Layer : ...

Ans) The Transport Layer : Segments upper-layer applications. Establishes an end-to-end connection. Sends segments from one end host to another. Optionally, make sures

Name the connecting devices of bridges, Connecting Devices of bridges -...

Connecting Devices of bridges - Five kinds: - Repeaters - Hubs - Bridges - Two- and three-layer switches - Repeaters and hubs - layer one of Internet model -

Assigment, what the domain name of 128.252.160.2000

what the domain name of 128.252.160.2000

Networking, can we correct errors using crc?

can we correct errors using crc?

What are the drawbacks of ethernet cabling, What are the drawbacks of Ether...

What are the drawbacks of Ethernet Cabling? The Ethernet cabling ahs the following drawbacks: 1. Ethernet is not a high-level performer in high-load environments. This proto

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