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

Distributed shared memory systems, Distributed Shared Memory (DSM) systems ...

Distributed Shared Memory (DSM) systems copy a shared memory abstraction on loosely coupled architectures in order to allow shared memory programming despite missing hardware suppo

Selective repeat (sr) - transport layer, Selective Repeat (SR) Select...

Selective Repeat (SR) Selective repeats is a connection oriented protocols  in which  transmitter and receiver have a window  of sequence numbers. SR scheme  avoids  the  unne

Define about unix systems and windows servers, What protocol can be applied...

What protocol can be applied when you need to transfer files between different platforms, such among UNIX systems and Windows servers? Use FTP (File Transfer Protocol) for file

Differentiate between ipv4 and ipv6, Question 1 Write short notes on Re...

Question 1 Write short notes on Reserved IP addresses and Special use IP addresses 2 Explain about the packet switching mechanism based on Virtual Circuit 3 Explain about

Arrays pointers for parallel algorithms, Arrays Pointers An array is a ...

Arrays Pointers An array is a set of the same type of data. Arrays are very well-liked data structures in parallel programming due to their easiness of use and declaration. At

Routing and routed protocols, What is difference among routing and routed p...

What is difference among routing and routed protocols? Ans) i) Routing use for top path selection ii) Routed protocol carries on source and destination information.

Configure vtp on the switches - ccna, Configure VTP on the Switches VTP...

Configure VTP on the Switches VTP permits the network administrator to control the instances of VLANs on the network by creating VTP domains. Within each VTP domain, one or mor

What is ring topology, What is Ring Topology? The physical ring topolog...

What is Ring Topology? The physical ring topology is a circular loop of point-to-point links. Every device connects directly to the ring or indirectly by and interface device o

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