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

What are instance variables, What are instance variables? Instance vari...

What are instance variables? Instance variables are those which are explained at the class level. Instance variables require not be initialized before using them as they are au

Give examples of the application layer, Pretty much any end-user program is...

Pretty much any end-user program is an best example of the Application Layer.

Describe the sequence of events occur in host attempt, The following inform...

The following information was obtained from a host: IP address...............205.133.127.8/24 Default Gateway...... 205.133.127.1 DNS Server.............139.100.110.10

What are the important topologies for networks, What are the important topo...

What are the important topologies for networks? BUS topology: In this every computer is directly linked to primary network cable in a single line. Advantages: Inexpensive,

What is an interrupt request, Question: a) Briefly describe the purpos...

Question: a) Briefly describe the purpose of Windows Powershell? b) Name three ways software can be installed on Linux? c) What is an interrupt request? d) As the

Comparative study between mpls and public internet, i want an assignment wi...

i want an assignment with 2500 words on this topic with Harvard referencing on 22th of dec can i get it ?

what is a typical value when rtp is used, In the VOIP system, let h be the...

In the VOIP system, let h be the total number of header bytes added to each chunk, including UDP and IP header. a)  Assuming an IP datagram is emitted every 20 msec, find the tr

Two items that tcp and udp share in common, Recognize the two items that TC...

Recognize the two items that TCP and UDP share in common? Ans) TCP and UPD are both layer 4 Transport protocols and both use port number to recognize upper level applications.

Network, network diagram which must include at least 2router,2bridge and 4 ...

network diagram which must include at least 2router,2bridge and 4 switches and must have different protocols and different cable...?

Explain collision, When the signal hits to each other, collision accord.

When the signal hits to each other, collision accord.

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