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

Show the basic handover types in umts, Question: (a) Show the main elem...

Question: (a) Show the main elements of the GSM system architecture and describe their functions. (b) Looking at the HLR/VLR database approach used in GSM-how does this arc

Was the entire transaction completed, The following information was obtaine...

The following information was obtained from a host computer: 00:05:17.176507 74.125.228.54.1270 > 64.254.128.66.25: S 2688560409:2688560409(0) win 16384 (DF) (ttl 46, id 2096

What are ip addresses, What are IP addresses? IP address refers to the ...

What are IP addresses? IP address refers to the name of a computer on a network, like the Internet. An Identifier for a computer or device on a TCP/IP network, like the

Difference between tftp and ftp application layer protocols, What is the di...

What is the difference between TFTP and FTP application layer protocols? The Trivial File Transfer Protocol (TFTP) allows a local host to obtain files from a remote host but d

What are the disadvantages of star topology, What are the disadvantages of ...

What are the disadvantages of Star Topology? The disadvantages are considered as follows: a. Needs more cable than most topologies. b. Moderately complex to install.

What is fcs, FCS= Frame Check Sequence CRC (Cyclic Redundancy Check) alg...

FCS= Frame Check Sequence CRC (Cyclic Redundancy Check) algorithm runs in switch that known as FCS (Frame Check Sequence)

Controlling and monitoring access to the intranet, Controlling and monitori...

Controlling and monitoring access to the Intranet Digital certificates provide excellent means of controlling and monitoring access to the Intranets. The certificate itself act

Distance-vector routing, Local information is immediate hop routing table a...

Local information is immediate hop routing table and distance from every switch. The switches regularly broadcast topology information i.e. distance, destination. Other switches mo

Reliable data transfer over a channel bit error rdt : 20, Reliable  data...

Reliable  data  transfer over a channel bit error  rdt : 20 A more realist model  of the underlying  channel  is one  in which  bits in packet may be  computed. Such  bit erro

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