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

What is a file server, What is a File server? File servers are helpful ...

What is a File server? File servers are helpful for sharing files across a network. With a file server, the client passes requests for file records over system to file server.

Network Administrator Support, Dear expert; I have an assignment about Net...

Dear expert; I have an assignment about Network Administrator Support . Here is the topic about:- Virtualization is an emerging type of network operating system that is currently

Subnet mask, Given the address 172.16.2.120 and the subnet mask of 255.255....

Given the address 172.16.2.120 and the subnet mask of 255.255.255.0. How many hosts are available? Ans) 172.16.2 120 is a standard Class B address with a subnet mask that permit

Multiple activity charts, A multiple activity chart records the related ...

A multiple activity chart records the related sequence of activities of more than one subject, men and / or machine on a common time scale showing the relationship between

What is load balancing, If the number of incoming clients invokes exceeds t...

If the number of incoming clients invokes exceeds the number of processes in a server class, the TP Monitor might be dynamically start new ones and this is known as Load balancing.

Define the concept of repeaters, Can you define the concept of Repeaters, H...

Can you define the concept of Repeaters, Hubs, Bridges, Switches and Routers?

Improvements for the wireline lan infrastructure, 5. CSMA/CD based Ethernet...

5. CSMA/CD based Ethernet LANs in various sites and Frame Relay (FR) service to connect them together. You want to make a difference in the organization by upgrading the LANs to be

What is star topology, What is Star topology Each station is directly c...

What is Star topology Each station is directly connected to a common central node. Typically, each station attaches to a central node via two point-to-point links, one for tran

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