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

Describe flow and error control mechanisms, Q. Describe Flow and Error Cont...

Q. Describe Flow and Error Control Mechanisms? Flow and Error Control Mechanisms - Stop and Wait ARQ - Go-Back ARQ - Selective Repeat ARQ

Distinguish between flow control and congestion control, Question: (a) ...

Question: (a) Distinguish between Flow Control and Congestion Control. (b) Explain clearly how a URL is resolved by a computer. (c) List one application that uses TCP

Show the congestion avoidance in tcp, Q. Show the Congestion avoidance in T...

Q. Show the Congestion avoidance in TCP? Slow Start (SS) & Additive Increase (AI) (AI=Congestion Avoidance) start with the congestion window (cwnd) = max segment si

Programs for implement tools for digital sound, You must write the 6 progra...

You must write the 6 programs described below. All of these are command-line tools that follow the Unix style of passing switches and arguments on the command line. As such, your p

Advantage and disadvantage of wiring schemes, ADVANTAGE AND DISADVANTAGE OF...

ADVANTAGE AND DISADVANTAGE OF WIRING SCHEMES:  Each of three wiring procedure has disadvantages and advantages, which are illustrate as follows: RELIABILITY ISSUES:  W

Illustrate unipolar line coding, Q Illustrate Unipolar line coding? - ...

Q Illustrate Unipolar line coding? - Simplest method is inexpensive - Utilizes only one voltage level - Polarity is habitually assigned to binary 1 a 0 is represented by

Synchronous tdm and statistical tdm, Difference between synchronous tdm and...

Difference between synchronous tdm and statistical tdm

What do you mean by protocol, What do you mean by Protocol? In the cont...

What do you mean by Protocol? In the context of data networking, a protocol is a formal set of rules and conventions that governs how computers exchange information over a netw

Explain how tcp handles connection-setup management, Problem: (a) Expla...

Problem: (a) Explain how TCP handles connection-setup management. (b) Each host on the Internet is currently assigned an IP address 32 bits long (IPv4). IPv4 addresses are u

Connection-oriented protocol, TCP is connection-oriented. Connection-orient...

TCP is connection-oriented. Connection-oriented is a kind of connection established between the source & destination machines before any data is sent that means a connection is est

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