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

Input port - network layer and routing , Input Port The input  ports ...

Input Port The input  ports line  termination functions  and data link processing implement  the physical  and data  link layer  associated with an individual input  link to

What are the working of software team, What are the working of software tea...

What are the working of software team The software team has to learn every bit of things related to computers. Since different users work on different platforms and application

Computer networks - fundamentals of networks , Computer Networks A com...

Computer Networks A computer  networks  can be defined as set of computer that  interact  among  the individual  computers sharing  resources or information. Reference models

Explain what are the external threats, Explain what are the External Threat...

Explain what are the External Threats External security threats are the most problematic ones. Till date the greatest threat was the virus menace. Now, with the sophisticated

Explain the anonymous ftp, What is anonymous FTP? Anonymous FTP is a wa...

What is anonymous FTP? Anonymous FTP is a way of granting user access to files in public servers. Users that are permitted access to data in these servers do not require identi

What is beaconing, Normal 0 false false false EN-IN X...

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

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