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

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

Illustrate about OSI architecture, Explain ISO's OSI Architecture The O...

Explain ISO's OSI Architecture The Open System Interconnection (OSI) is a standard reference model for communication among two end users in a network. It is used in developing

Transmission robustness and security, Transmission robustness and security ...

Transmission robustness and security Unless properly designed, a wireless LAN might be interference prone and simply eavesdropped. The design of a wireless LAN must allow relia

Explain stop--and--wait automatic repeat request, Q. Explain Stop--and--Wai...

Q. Explain Stop--and--Wait automatic repeat request? 1. Numbering frames prevents the retaining off duplicate frames. 2. Numbered acknowledgement are needed in case of delay

Link-state routing, In link-state routing network topology is filled from...

In link-state routing network topology is filled from route calculation. Switches send link-state information about local joins. Every switch creates own routing tables. It needs

Flow control in TCP, Q. Flow control in TCP? The amount of data a s...

Q. Flow control in TCP? The amount of data a source is able to send before receiving an ACK from the destination Whether to send 1 byte of data as well as wait for ACK

What are the communication tools, What are the Communication tools ? Voic...

What are the Communication tools ? Voice mail ? Email ? Fax ? Video conferencing applications

Network devices - network layer and routing , Network Devices a.Hub ...

Network Devices a.Hub b.Repeater c.Bridge d.Gateway e.Switch f.Router Connecting devices can  classified  into networking and internetworking  devices when

Explain about star backbone network, Q. Explain about Star Backbone network...

Q. Explain about Star Backbone network? - Collapsed or switched backbone - Backbone is just one switch that connects LANs - Utilized as distribution backbone inside a bui

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