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

Osi reference model, - The model was developed by the ISO (International Or...

- The model was developed by the ISO (International Organisation for Standardisation) in 1984. It is currently considered the primary Architectural model for inter-computer communi

Introduction-pram algorithms, One of the most popular models for designing ...

One of the most popular models for designing parallel algorithms is PRAM (Parallel Random Access Machine). A PRAM consists of unbounded number of processors interrelating with each

Subletting, Ask Design private subnetworks (using Class A range for CIDR) f...

Ask Design private subnetworks (using Class A range for CIDR) for each domain as in the table below, and complete the table. Hints: Consider how many network bits are required to a

Illustrate about rsa encryption, Q. Illustrate about RSA Encryption? R...

Q. Illustrate about RSA Encryption? RSA Encryption - Public key encryption technique - Encryption steps: - Encode data to be encrypted as a number to create the pla

What is a binary semaphore, What is a binary semaphore? What is its u...

What is a binary semaphore? What is its use? A binary semaphore is takes only 0 and 1 as values. They are used to execute mutual exclusion and synchronize concurrent p

Different type of networking and internetworking device, What is the differ...

What is the different type of networking / internetworking devices? Repeater: Also called a regenerator, it is an electronic device that operates only at physical layer. I

What are the rules for writing on the web? explain, Question 1 How can one...

Question 1 How can one set up internet on a PC and test it?? Explain Setting up a new connection Testing internet connection Question 2 What are the rules for wri

Explain the wireless standards, Problem 1: (a) Briefly explain each of...

Problem 1: (a) Briefly explain each of the following wireless standards: (i) WiFi (ii) WiMAX (iii) 3G. Problem 2: (b) Bluetooth is an industrial specific

Tcp-ip routing architecture, Q. Explain TCP-IP Routing Architecture? ...

Q. Explain TCP-IP Routing Architecture? The TCP/IP routing architecture looks extremely much like the OSI routing architecture. Hosts utilize a discovery protocol to 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