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

Analysis of the ethical issue, This ICT-related issue that has been raised ...

This ICT-related issue that has been raised in the contemporary media, and the article is required to be included as part of the essay: Undertake further research about this top

Explain about the switches, Explain about the Switches LAN switches are...

Explain about the Switches LAN switches are an expansion of the method in LAN bridging, which controls data flow, handles transmission errors, gives physical addressing, and ma

Advantages of configuring virtual local area network, Many benefits of conf...

Many benefits of configuring VLAN as listed below: • Performance Enhancements: It reduces heavy load on the network by permitting operations at lower latencies by using VLAN t

Hierarchical routing strategy, i want a program of hierarchical programming...

i want a program of hierarchical programming in c language with its output. please help me .

Describe the literal meaning of the term intranet, Describe the literal mea...

Describe the literal meaning of the term Intranet The literal meaning of the term Intranet as given in various dictionaries is as follows: In' tra net - n. 1)  A network

Distinguish cisc and risc, Question 1 Distinguish CISC and RISC Question ...

Question 1 Distinguish CISC and RISC Question 2 Write a short note on Asynchronous Transfer Mode of transmission Question 3 Explain various client/server applications using Ja

Define the term network throughput, Network throughput It is a symptoma...

Network throughput It is a symptomatic measure of the message carrying capability of a network. It is termed as the total number of messages network can send in per unit time.

Data alignment in processor arrangements, Data Alignment Arrays are ali...

Data Alignment Arrays are aligned to templates by the ALIGN directive. The ALIGN directive is used to align elements of different arrays with each other, indicating that they s

Troubleshooting vtp configuration -ccna, Prepare the Network Step 1: Ca...

Prepare the Network Step 1: Cable a network that is similar to the one in the topology diagram.  You can use any current switch in your lab as long as it has the needed inte

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