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

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

Factors effects the quality of image of monitor, Q. Factors effects the qua...

Q. Factors effects the quality of image of monitor? Four factors effects the quality of image of monitor:   1.  Phosphor coating: This affects the colour and persistence (Th

Issues with bridges connecting different lans, Issues with Bridges Connecti...

Issues with Bridges Connecting Different LANs - Frame format - differences in frame structure, fields used (example Ethernet to Token Ring) - Payload size - size of data en

Network Fundamentals BTech Telecommunication, Write a report on your chosen...

Write a report on your chosen topic that has been approved by your Lecturer. Your report should include appropriate figures, about 2000 words. Topics: 1 MAN- Metro Ethernet 2 Inte

Network virtual terminal - transport layer , Normal 0 false f...

Normal 0 false false false EN-IN X-NONE X-NONE

Write down code snippets for the following in jade, Question 1 Using a ...

Question 1 Using a flowchart and appropriate annotations, describe the execution path of an Agent in JADE 2 Write down code snippets for the following in JADE a Agent A n

What is the importance of encryption on a network, What is the importance o...

What is the importance of Encryption on a network? Encryption is the process of translating information into a code that is unreadable by the user. It is then translated back o

Hierarchy of dns servers application layer , Hierarchy of DNS Servers ...

Hierarchy of DNS Servers DNS uses a large number of server organized in hierarchical  fashion  and distribution  around the world. No single DNS server has all  of the  mappin

What are the internal threats - security, What are the Internal Threats ...

What are the Internal Threats Internal security problems are probably the most common. One never knows what someone is going to do. Even the most loyal employees or workers can

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