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

Routing table - network layer and routing , Routing Table A routing  t...

Routing Table A routing  table has columns  for at  three types o information  the network  ID  the cost  and the  ID of the  next  router. The  network  ID is the final  desti

What are the benefits accruable from networks, What are the benefits accrua...

What are the benefits accruable from networks The exact number of benefits accruable from networks cannot be enumerated easily in terms of monetary benefit. In order to unde

What is one basic requirement for establishing vlan, What is one basic requ...

What is one basic requirement for establishing VLANs? A VLAN needs dedicated equipment on each end of the connection that permits messages entering the Internet to be encrypted

Explain the get and set snmp operations, Question 1 Explain the basic comm...

Question 1 Explain the basic communication model with its block diagram Question 2 List and explain the functions of network monitoring Question 3 Explain the get and se

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

What are the brigdes, Brigdes Introduction - LAN may require to cove...

Brigdes Introduction - LAN may require to cover more distance than the media can handle effectively or - Number of stations may perhaps be too great for efficient frame d

How can you identify the ip class of a given ip address, How can you identi...

How can you identify the IP class of a given IP address? By looking at the first octet of any given IP address, you can recognize whether it's Class A, B or C. If the first oct

Verify network connectivity- ccna, Verify Network Connectivity Step 1: ...

Verify Network Connectivity Step 1: Use the ping command to determine network connectivity. You can determine network connectivity using the ping command.  Note: If pings

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