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

Byte number - transport layer, Byte Number TCP number all data  bytes ...

Byte Number TCP number all data  bytes that  are transmitted  in a connection. Numbering  is independent  in each direction when TCP receives bytes of data  a process. It stor

Bit stuffing, bit stuffing program in python

bit stuffing program in python

What is a web server in client server environment, This new model of Client...

This new model of Client/Server having of thin, portable, "universal" clients that talks to superfast servers. In the simple form, a web server returns documents when clients ask f

Simple mail transfer protocol ( smtp), Simple Mail Transfer Protocol ( SMTP...

Simple Mail Transfer Protocol ( SMTP) SMTP is the principal  application layer protocol for  internet electronic  mail. It uses the reliable data transfer  service of TCP  to

Describe in brief about tree topology, Tree topology Comments 1 -...

Tree topology Comments 1 - This features star nodes on a bus network 2 - All the disadvantages and advantages of both types of networks described above apply to this s

What are reasons behind using layered protocols, What are reasons behind us...

What are reasons behind using layered protocols  Reasons for using layered protocols, using them leads to breaking up design problem into smaller more manageable pieces and lay

What is parabolic dish antenna, Q. What is Parabolic Dish Antenna? - In...

Q. What is Parabolic Dish Antenna? - Incoming signals means that the Signal bounces off of dish and is directed to focus - Outgoing signals signifies transmission is broadca

link layer - computer network, Link Layer To move  to packet  from o...

Link Layer To move  to packet  from one node( host  or packet swtich0 to  net node  in the  route the network  layer  relies  on the  services  of the link layer. Particularl

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