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

Illustrate 802.11 csma, 802.11 CSMA/CA a) Wait a DIFS time to avoid col...

802.11 CSMA/CA a) Wait a DIFS time to avoid collision b) Send RTS and wait for CTS reply to obtain the use of the Medium (air) c)  Use of SIFS time for control informatio

Reliability - fundamentals of networks , Reliability Reliability  is t...

Reliability Reliability  is the measure of how  often  a network is usable. MTSF( Mean time  Between Failure) is a measure of the average time  a component  is expected to ope

Use of a distance vector routing algorithm, Question: (a) The diagram ...

Question: (a) The diagram below shows a configuration of Internet routers (A-F) which achieve dynamic routing through the use of a Distance Vector routing algorithm. The metr

Ethernet interface on the cisco router , As a system administrator, you req...

As a system administrator, you require to set up single Ethernet interface on the Cisco router to permit for both sap and Novell-ether encapsulations. Which set of commands will ac

How a token ring networks allows sharing of bandwidth, Question: (a) E...

Question: (a) Explain how a Token Ring networks allows sharing of bandwidth (access control). (b) (i) CSMA/CD is not appropriate for wireless communication. Explain wh

Matlab chi square functioning, Create a custom chi-square function in matla...

Create a custom chi-square function in matlab, MATLAB in Statistics

Describe the automatic repeat request protocol, Question 1: (a) In net...

Question 1: (a) In networking, there are different possible topologies. Explain the Linear bus, Ring and Star topology along with their advantages and disadvantages. (b) W

Building a defense in networking, Q. Building a Defense in networking? ...

Q. Building a Defense in networking? When building a defense you must use a layered approach that includes securing - The network infrastructure the communications protocol

Explain physical layer of osi reference model, Q. Explain physical layer of...

Q. Explain physical layer of Osi reference model? - The physical layer deals among the physical characteristics of the transmission medium. - It defines the mechanical, elec

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