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 is authentication, Q. What is Authentication ? - Verification of s...

Q. What is Authentication ? - Verification of sender's identity. - Accomplished through a digital signature, which is based on public key encryption/decryption. - Uses re

Medium earth orbiting satellite, Medium Earth Orbiting satellite is an orbi...

Medium Earth Orbiting satellite is an orbit which is located just above the few hundred miles to a few thousands above the earth surface. It is of higher advantage than Low orbit s

Data parallel programming with parallel virtual machine, Data Parallel Prog...

Data Parallel Programming In the data parallel programming model, main focus is on performing simultaneous operations on a data set. The data set is typically prepared into a c

What is retransmission timer, Q. What is Retransmission timer? Retrans...

Q. What is Retransmission timer? Retransmission timer if an ACK is received previous to the timer goes off - destroy the timer if the timer goes off before ACK a

Example of go back - N protocol, Q. Example of go back - N protocol? Th...

Q. Example of go back - N protocol? The window size is 4. A sender has sent frame 6 as well as the timer expires for frame 3 (frame 3 not ACKn'd). The sender goes back as we

Root, Originally Linux/UNIX systems had one all-powerful user called root t...

Originally Linux/UNIX systems had one all-powerful user called root that managed systems. Discuss the risks of having a single root user and how more limited management abilities c

Cisco CCNA, configure a router . get the default gateway

configure a router . get the default gateway

Media, explain history of internet?

explain history of internet?

Explain the term - carrier sense multiple access, What is use of Carrier se...

What is use of Carrier sense multiple access Carrier sense multiple access with collision detection (CSMA/CD) is a form of medium access control in which a station listens to

Show the congestion control in TCP, Q. Show the Congestion control in TCP? ...

Q. Show the Congestion control in TCP? Congestion control in TCP TCP assumes that the cause of lost segment is due to congestion in the network Retransmission of

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