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

Define rs232 interface, Q. Define RS232 Interface? - Indicates the inte...

Q. Define RS232 Interface? - Indicates the interface between DTE and DCE: V.28 mechanical as well as electrical characteristics V.24: functional as well as procedur

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

Global positioning system (gps) tracking, By utilizing measurements of the ...

By utilizing measurements of the so-called pseudo range between an object and each of several earth orbiting GPS satellites, the object can be very accurately located in space. A g

What are general middleware, It consists of the communication stacks, distr...

It consists of the communication stacks, distributed directories, authentication services, network time, RPC, Queuing services along with the network OS extensions like the distrib

Explain the authentication header (ah) protocol, Can you explain the Authen...

Can you explain the Authentication Header (AH) Protocol?

What is star topology, What is Star topology Each station is directly c...

What is Star topology Each station is directly connected to a common central node. Typically, each station attaches to a central node via two point-to-point links, one for tran

What do you understand by osi, Q. What do you understand by OSI? Ans: T...

Q. What do you understand by OSI? Ans: The Open System Interconnection (OSI) reference model illustrates how information from a software application in one computer goes throug

Explain the transport layer in detail, Explain the transport layer in detai...

Explain the transport layer in detail Transport Layer: Transport layer ensures and controls the end-to-end integrity of data message propagated via the network  amid two devic

What is framing, What is Framing? Framing in the data link layer divide...

What is Framing? Framing in the data link layer divides a message from one source to a destination, or from other messages to other destinations, by adding a sender address and

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