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

Calculate the modulation index and find the bandwidth, Consider a signal x(...

Consider a signal x(t) = 10 cos(2πfct + 4 cos 2πfmt). Assume frequency modulation. The message frequency fm = 2:3 kHz. Calculate the modulation index and find the bandwidth when

Tp-lite and tp-heavy monitors, What are TP-Lite and TP-Heavy Monitors? A...

What are TP-Lite and TP-Heavy Monitors? Ans) TP-Lite is simply the integration of TP Monitor functions in the database engines.TP-Heavy are TP Monitors which handles the Client/

What is a management information base, What is a Management Information Bas...

What is a Management Information Base (MIB)? A Management Information Base is part of each SNMP-managed device. Every SNMP agent has the MIB database that having information ab

What is meant by asymmetric multiprocessing (amp), It imposes hierarchy and...

It imposes hierarchy and a division of labor between processors. Only one designated processor, the master, controls (in a tightly coupled arrangement) slave processors dedicated t

What is difference among flsm and vlsm, In FLSM subnet mask of all subnets ...

In FLSM subnet mask of all subnets will b same. But in FLSM it changes.

Initialization - network layer and routing , Initialization  Imagine t...

Initialization  Imagine that  all routers in our  sample internetwork  comes up  at the  same time. Each router sends a greeting packet to its  neighbours to find  out the  sta

State in brief about the graceful degradation, State in brief about the Gra...

State in brief about the Graceful degradation With FDMA or TDMA, a fixed number of users can concurrently access the system. Though, with CDMA, as more user concurrently access

Analysis of the ethical issue, This ICT-related issue that has been raised ...

This ICT-related issue that has been raised in the contemporary media, and the article is required to be included as part of the essay: Undertake further research about this top

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