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

Software overheads in parallel programming , Besides these hardware overhea...

Besides these hardware overheads, there are certain software overheads imposed by libraries, parallel compilers, tools and operating systems. The parallel programming languages

Introduction to parallel programming, Introduction To Parallel Programming ...

Introduction To Parallel Programming After getting an enormous breakthrough in the serial programming and figuring out its limitations, academicians and computer professionals

Explain point-to-point protocol in ccna, An industry standard suite of prot...

An industry standard suite of protocols for the use of point-to-point links to transport multiprotocol datagrams.

Post office protocols version - application layer, Post Office  Protocols ...

Post Office  Protocols Version In computing  the post office protocol  version 3 (POP3) is an  application layer internet standard  protocols  used by  local e mail  clients

Show the data encryption standard, Q. Show the Data Encryption Standard? ...

Q. Show the Data Encryption Standard? Data Encryption Standard - Bit-level encryption method designed by IBM - Adopted as standard for nonmilitary and nonclassified us

What does ''p'' mean when running a trace, When a P is returned when a Trac...

When a P is returned when a Trace is run, it means the Protocol is unreachable.

Why it is essential to have layering in a network, Q. Why it is essential t...

Q. Why it is essential to have layering in a network? Ans: A computer network is a very complicated system. It becomes very hard to implement as a single entity. The layered ap

Describe the class C addresses, Q. Describe the Class C Addresses? ...

Q. Describe the Class C Addresses? The initial three octets are the network number as well as the last octet is the host number 2096896 blocks used for assignment to o

Merits of a network based ids and a host based ids, Question: (a) Descr...

Question: (a) Describe the following biometric techniques:- (i) Retina scan, (ii) Fingerprint, (iii) Iris Scan. Your answer should consider the following: the data storage requ

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