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

Objectives of performance evaluations, OBJECTIVES After studying this ...

OBJECTIVES After studying this part, you should be able to: Explain the Metrics for Performance Evaluation; Notify about various Parallel System Overheads; Desc

Why you require connecting two computers for file sharing, You require conn...

You require connecting two computers for file sharing. Is it possible to do this without using a hub or router? Yes, you can connect two computers together using only one cable

What is a link, What is a Link? A link refers to the connectivity among...

What is a Link? A link refers to the connectivity among two devices. It contains the type of cables and protocols used in order for single device to be able to communicate with

Lan- wan network module expansion slot, WAN interface card(WIC) slots T...

WAN interface card(WIC) slots Two fixed WIC slots are present in  2600 series router except 2691. It has contained 3 WIC slots. Network Module Expansion Slot( NM) slot

Explain about flow control, Q. Explain about Flow Control? - Signifies...

Q. Explain about Flow Control? - Signifies to ask the transmitter to stop/resume sending in data - Required when DTE to DCE speed > DCE to DCE speed - (Exampl

Tcp connection management , TCP Connection Management TCP connection ...

TCP Connection Management TCP connection management encompasses the procedures for establishing and  terminating connection (FTCP is  connection oriented protocols). In TCP c

Show the crc-performance, Q. Show the CRC-Performance ? CRC-Performanc...

Q. Show the CRC-Performance ? CRC-Performance CRC is able to detect all burst errors that affect an odd number of bits CRC is able to detect all burst errors of

Brdging between buildings, BRDGING BETWEEN BUILDINGS:  If two building...

BRDGING BETWEEN BUILDINGS:  If two buildings are placed far from each other, a bridge, a pair of fiber modems and an optical fiber may be used to locate two LANs as given in t

Illustrate network layer in osi layers model, Q. Illustrate Network Layer i...

Q. Illustrate Network Layer in osi layers model? Network Layer :  This is responsible for addressing messages and data so they are sent to the required destination, and for tr

What is bookmark, What is Bookmark A list of pages a user likes to f...

What is Bookmark A list of pages a user likes to frequently visit. Netscape® Navigator and Explorer® have a "bookmark" menu item which allows users to add favourite sites vi

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