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

Telecoms, What is a Multiplexor

What is a Multiplexor

Protocols and standards - cable network architecture, Q. Protocols and Stan...

Q. Protocols and Standards - Cable Network Architecture? - Essential in creating as well as maintaining an open and competitive market for equipment manufacturers and in guaran

Command that shows traffic statistics on serial 0/1, Recognize the command ...

Recognize the command that shows traffic statistics on serial0/1? Ans) show interface serial 0/1

Uses of fragmentation and reassembly, Uses of fragmentation and reassembly ...

Uses of fragmentation and reassembly The More bit is used for fragmentation and reassembly. If this bit is 0, then either there has been no fragmentation of this packet or this

Explain clustering support, Explain clustering support Clustering suppo...

Explain clustering support Clustering support refers to the ability of a network operating system to link multiple servers in a fault-tolerant group. The main purpose of this i

What is an object server, With an object server, the Client/Server applicat...

With an object server, the Client/Server application is taken as a set of communicating objects. Client object commune with server objects using an Object Request Broker (ORB). The

Overview of the transport layer protocols, Overview of the Transport  Laye...

Overview of the Transport  Layer Protocols Transport layer  can be  available  more than  protocols  to the  network  applications. For  example the network  applications. For

Explain the anonymous ftp, What is anonymous FTP? Anonymous FTP is a wa...

What is anonymous FTP? Anonymous FTP is a way of granting user access to files in public servers. Users that are permitted access to data in these servers do not require identi

Objectives of parallel programming, OBJECTIVES After reading this unit,...

OBJECTIVES After reading this unit, you should be able to: Describe the basics of parallel programming; Explain the parallel programming based on message passing;

Difference between latches and flip flops, What is the basic difference bet...

What is the basic difference between latches and flip flops? Ans) flip flops have clock signal whereas latches dont require anyclock pulse..

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