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 the functions of the typical server program, What are the function...

What are the functions of the typical server program? It waits for client-initiated requests. Executes many requests at the same time. Takes care of VIP clients first. Initiate

Distance-vector routing, Local information is immediate hop routing table a...

Local information is immediate hop routing table and distance from every switch. The switches regularly broadcast topology information i.e. distance, destination. Other switches mo

What are the internal threats - security, What are the Internal Threats ...

What are the Internal Threats Internal security problems are probably the most common. One never knows what someone is going to do. Even the most loyal employees or workers can

Error and flow control in dll, differntiate between error control and flow...

differntiate between error control and flow control in data link layer

Quantity of numbers that a system administrator has to enter, In order to l...

In order to limit the quantity of numbers that a system administrator has to enter, Cisco can use which abbreviation to show 0.0.0.0?  Ans) Cisco uses host to state 0.0.0.0. Thi

UDP Programming, I have a larget text file of 1MB, how do i break down into...

I have a larget text file of 1MB, how do i break down into chunks of packets to send over UDP? byte b[]=new byte[1024]; FileInputStream f=new FileInputStream("input.txt

Subnetting (EIGRP), #questiGE 1-A Objectives: • Consolidate EIGRP knowle...

#questiGE 1-A Objectives: • Consolidate EIGRP knowledge. • Introduce the Route Redistribution concept. • Introduce the EIGRP External Routes concept. • Introduce the Default Met

Determine theoretical data capacity of the wireless channel, Consider a sim...

Consider a simple wireless data link using channel bandwidth of 40 kHz. The transmit power level is 20 dBm, the link attenuation is 40 dB and the SNRdB at the receiver is 20 dB.

Illustrate the working of networking bus topology, Illustrate the working o...

Illustrate the working of networking Bus Topology All stations attach, by appropriate hardware interfacing called as a tap, directly to a linear transmission medium, or bus. F

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