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

Explain file transfer protocol, Q. Explain File Transfer Protocol? - Fi...

Q. Explain File Transfer Protocol? - File Transfer Protocol (FTP) is a TCP/IP client-server application for copying files from one host to another -- Establishes two connect

Which layer is responsible for coordinating communication , Which layer is ...

Which layer is responsible for coordinating communication between systems Ans) The Session layer performs the following: Responsible for establishing and maintaining connections

Authoritative dns servers application layer, Authoritative DNS Servers ...

Authoritative DNS Servers Every  organization with publicly  accessible hosts  ( such  as web  server and mail  several  on the  internet  must  provide  publicly accessible D

What is the virtual channel, A logical circuit that is created by Virtual c...

A logical circuit that is created by Virtual channel links. It carries data among two endpoints in a network. The one more name for Virtual Channel is Virtual Circuit.

Layer of security, Other than performance  issues, there could be security ...

Other than performance  issues, there could be security reasons for using something like xinetd.  Make simple design in which a new version of xinetd gives a layer of security.

Which applications of computer network can be categorized, What are the mai...

What are the main categories based on which applications of computer network can be categorized? The major areas under which the applications for computer network can be divide

Explain stored procedures, What are Stored procedures? A stored procedu...

What are Stored procedures? A stored procedure is s named collection of SQL statements and procedural logic that is compiled, verified and kept in a server database. It is typi

Will the client send a tcp or udp packet, Question: (a) Explain the usa...

Question: (a) Explain the usage of the following parts of the IPv4 datagram format. i. VERS ii. HLEN iii. TOTAL LENGTH iv. SERVICE TYPE v. HEADER CHECKSUM (b) Na

Threats to information can include, Threats to information can include ...

Threats to information can include Deletion of a file or files. Corruption, caused either by hardware problems or by a bug in the software. Theft of company data

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