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 do you mean by open system, COMPUTER NETWORKS 1. What do you mean ...

COMPUTER NETWORKS 1. What do you mean by open system? What is the purpose of OSI model? Explain the layered architecture of OSI model. 2. Define the following terms: a) Ana

Multimode for transmitting optical signals, Q. Multimode for transmitting o...

Q. Multimode for transmitting optical signals? - Multiple beams from light source travel through core at different paths - Multimode step-index fiber Density remains

Building distributed systems, Unfortunately, building real-life distributed...

Unfortunately, building real-life distributed systems is not easy. It is hard, for instance, to implement instructions such as "send this data structure to be processed on that com

Describe the hardware complexity of benz network, Q. Describe the Hardware ...

Q. Describe the Hardware complexity of Benz Network? Hardware complexity of Benz Network:  Benz network employs lesser switches and it gives good connectivity. To come across h

10base-t, 10BASE-T:  This is another standard of wiring function. It i...

10BASE-T:  This is another standard of wiring function. It is usually known 10Base-T, TP Ethernet or Twisted Pair. It removes AUI cable with twisted pair cable and thick coax

What are the key functions of data link layer, What are the key functions o...

What are the key functions of data link layer? Data link layer transfers data in a structured and reliable manner so that the service given by the physical layer is utilized by

Hardware difficulty, Hardware difficulty It refers to the price of hard...

Hardware difficulty It refers to the price of hardware logic like connectors, wires, switches, arbiter etc. that are required for execution of interconnection network.

Configure basic switch parameters- ccna, Configure basic switch parameters....

Configure basic switch parameters. Configure the S1, S2, and S3 switches according to the following guidelines: Configure the switch hostname. Disable DNS lookup.

Tcp connections - transport layer, TCP Connections TCP  is an end to e...

TCP Connections TCP  is an end to end point to point  transport  used in internet. being a point  to point  protocols  means that  there is always  s single  sender  a single

What is the difference between a jdk and a jvm, What is the difference betw...

What is the difference between a JDK and a JVM? JDK is Java Development Kit which is for development purpose and it contains execution environment also. But JVM is purely a

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