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

Program to load the router with the supplied scripts-ccna, Load the Router ...

Load the Router with the Supplied Scripts Enable ! config term ! hostname Router1 ! enable secret class ! no ip domain-lookup !  interface FastEth

Describe asynchronous vs. synchronous transmission, Serialized data is not ...

Serialized data is not generally sent at a uniform rate by a channel. Instead, there is usually a burst of regularly spaced binary data bits followed by a pause, after which the da

Print Servers, Which of the following commands will display the current pri...

Which of the following commands will display the current print jobs on a printer named Office Printer 01?

Multicast routing protocols, Multicast Routing Protocols Multicast gr...

Multicast Routing Protocols Multicast group addresses are assigned by IANA [Internet Assigned Numbers Authority for well known services and protocols. Information is exchang

Give examples of the application layer, Pretty much any end-user program is...

Pretty much any end-user program is an best example of the Application Layer.

Identify the purpose of the dlci, DLCI stands for Data Link Connection Iden...

DLCI stands for Data Link Connection Identifier. It identifies the local PVC.

Discuss user datagram protocol, Problem 1 Bring out the differences bet...

Problem 1 Bring out the differences between POP and IMAP4 Problem 2 Discuss User Datagram protocol Problem 3 Explain the various steps in TCP congestion control

What are the categories of traditional ethernet, Categories of traditional ...

Categories of traditional Ethernet a)  Baseband - digital signals using Manchester encoding b) 10Base2, 10-Base-T, 10Base5, 10Base-FL c)  First number signifies data rate

TCP, TCP creates a reliable data transfer service, in addition to IP''s unr...

TCP creates a reliable data transfer service, in addition to IP''s unreliable best-effort service. Study the related sections of the text, and in your own words, summarize how TCP

Networking services, Your Windows client failed to broadcast to all servers...

Your Windows client failed to broadcast to all servers that it has accepted an IP address offer. What step is this in the four-step DORA process? a. Discovery b. Offering c. Reques

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