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

Role of design in achieving reliability, ROLE OF DESIGN IN ACHIEVING RELIAB...

ROLE OF DESIGN IN ACHIEVING RELIABILITY One of the most important methods for achieving high reliability is through design.  Use reliability cannot be higher than the design re

Typical functional units of the client/server applications, What are the mo...

What are the most typical functional units of the Client/Server applications? Ans) typical functional units of the Client/Server applications User interface Business Logic

Explain the term- encryption, Explain the term- Encryption Because all ...

Explain the term- Encryption Because all of the user traffic, as well as control traffic, is digitized in second generation systems, it is a relatively simple matter to encrypt

Describe network topology and vpn, Describe Network Topology and VPN Ne...

Describe Network Topology and VPN Network Topology refers to the layout of a computer network. It presents how devices and cables are physically laid out, as well as how they j

How two adjacent layers communicate in a layered network, How two adjacent ...

How two adjacent layers communicate in a layered network? (or What do you mean by Service Access Point?) In layered network, each layer has lots of entities and entities of lay

Describe the omni-directional and the directional antennas, Question: a...

Question: a) Describe the following two approaches used towards wireless frequency regulation. i. Regulated Band ii. Unlicensed Band b) An antenna is an electrical c

What is difference among rip and ripv2, RIP It is Broadcast There i...

RIP It is Broadcast There is no authentication It Support FLSM   RIPV2 It is Multicast There is Authentication It Support VLSM

Combine subtitution and transposition, how to own cipher to encrypt and dec...

how to own cipher to encrypt and decrypt message by combine both substitution ans transposition algorithm using c program

Message passing programming, Message passing is probably the most extensive...

Message passing is probably the most extensively used parallel programming paradigm today. It is the mainly natural, portable and efficient approach for distributed memory systems.

Itc597, restore the scrambled bits to their original order

restore the scrambled bits to their original order

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