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

Illustrate nonboundary-level masking with example, Q. Illustrate Nonboundar...

Q. Illustrate Nonboundary-Level Masking with example? Nonboundary-Level Masking Example IP address 45 123 21 8 Mask 255 192 0 0 Subnet 45 64 0 0 123 0

Was the entire transaction completed, The following information was obtaine...

The following information was obtained from a host computer: 00:05:17.176507 74.125.228.54.1270 > 64.254.128.66.25: S 2688560409:2688560409(0) win 16384 (DF) (ttl 46, id 2096

traffic flow mapping , Develop traffic flow mapping and performance requir...

Develop traffic flow mapping and performance requirements for flows. A) Traffic Flow Mapping B) Performance Requirements

Determine the term - backend lan, Determine the term - Backend LAN Back...

Determine the term - Backend LAN Backend networks are used to interconnect large systems like mainframes, supercomputers, and mass storage devices. The key needs here is for bu

What are the two broad classes of middleware, Two broad classes of middlewa...

Two broad classes of middleware are a) General middleware b) Service-specific middleware.

What is the effect on the security of the password, Question: (a) What...

Question: (a) What is a script kiddie? Is it a significant security threat, and why? (b) Assume that UNIX uses the user login name in lieu of the traditional salt, what is

Protocols and standards - cable network architecture, Q. Protocols and Stan...

Q. Protocols and Standards - Cable Network Architecture? - Essential in creating as well as maintaining an open and competitive market for equipment manufacturers and in guaran

Application to exploring network packet capture, This lab introduces basic ...

This lab introduces basic network capture concepts using Wireshark. Setup You will need a PC running Windows for this lab and you will need to install the Wireshark softwar

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