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

Describe network topology and vpn, Describe Network Topology and VPN Ne...

Describe Network Topology and VPN Network Topology refers to the layout of a computer network. It presents how devices and cables are physically laid out, as well as how they j

Command to copy the ios image to a tftp server, What is the command to copy...

What is the command to copy the IOS image to a TFTP server? Ans) Copy flash tftp

Advantages of ospf - network layer and routing , Advantages of OSPF OSP...

Advantages of OSPF OSPF an is having different  advantages. These are as follows. OSPF  is an open standard supported by many  vendors. OSPF converges quickly. OSPF au

Subnet layer of the tcp-ip model, Q. Subnet layer of the TCP-IP model? ...

Q. Subnet layer of the TCP-IP model? These two layers of the OSI correspond straight to the subnet layer of the TCP/IP model. Majority of the time the lower layers under the

Asynchronous or statistical time division multiplexing, Asynchronous or Sta...

Asynchronous or Statistical Time Division Multiplexing As we  have seen  synchronous  TDM does not  guarantee that the full capacity of a link in sued. In fact it is more like

Routing table - network layer and routing , Routing Table Each  router ...

Routing Table Each  router now  uses the  shortest path tree to construct its routing table . each  router  uses the same algorithm and the same link state  database its own sh

Explain the term- encryption, Explain the term- Encryption Because all ...

Explain the term- Encryption Because all of the user traffic, as well as control traffic, is digitized in second generation systems, it is a relatively simple matter to encrypt

Create and simulate a network - netml system, Create and simulate a network...

Create and simulate a network similar to the one shown here, using the NetML system. The network is a little more complex, as depicted at the right. There is an extra node

Define name space in domain name system, Q. Define Name Space in domain nam...

Q. Define Name Space in domain name system? - All names assigned to machines on an internet - Must be unique; either flat or hierarchical - Flat name space - name is assi

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