Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Socket Programming In Computer Network, Study notes of Computer Networks

An introduction to socket programming, which is a way of connecting two nodes on a network to communicate with each other. It explains the concept of sockets, the role of the transport layer, and the interaction between client and server processes. It also discusses the development of proprietary applications and the use of TCP for socket programming. a basic understanding of socket programming for beginners.

Typology: Study notes

2022/2023

Available from 07/13/2023

sunny-singh-13
sunny-singh-13 🇮🇳

22 documents

1 / 5

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
What is socket programming?
Socket programming is a way of connecting two nodes on a network to communicate
with each other. One socket (node) listens on a particular port at an IP, while other
socket reaches out to the other to form a connection. Server forms the listener socket
while client reaches out to the server.
Transport Layer.!Many network applications consist of two programs namely a!client
program and a server program!(already seen in the previous lectures).!
When these programs have executed a client and a server process are created which
communicate with each other by reading from and writing through the sockets. A socket
is an interface between the transport and application layer within a host. It is also referred
to as!API (Application Programming Interface).!
When creating a network application, a developer has to write the code for both clients
and server programs. In a proprietary application of the application layer protocol used by
the client and server programs , a single developer or developing team writes the client
and server programs.
As the code does not implement a public domain protocol. The other independent
developers can not develop code that interoperates with the application.!When developing
a proprietary type application, the developer needs to first decide whether the application
is to run over!TCP!or!UDP.
Sockets Programming with TCP
The socket is a programming interface, with which network applications are built. A
process sends messages into and receives messages from the network through socket
interface software.
The processes running on different machines communicate with each other by sending
messages into sockets. Socket acts as a door between the application process and TCP as
shown in figure.
pf3
pf4
pf5

Partial preview of the text

Download Socket Programming In Computer Network and more Study notes Computer Networks in PDF only on Docsity!

What is socket programming? Socket programming is a way of connecting two nodes on a network to communicate with each other. One socket (node) listens on a particular port at an IP, while other socket reaches out to the other to form a connection. Server forms the listener socket while client reaches out to the server. Transport Layer. Many network applications consist of two programs namely a client program and a server program (already seen in the previous lectures). When these programs have executed a client and a server process are created which communicate with each other by reading from and writing through the sockets. A socket is an interface between the transport and application layer within a host. It is also referred to as API (Application Programming Interface). When creating a network application, a developer has to write the code for both clients and server programs. In a proprietary application of the application layer protocol used by the client and server programs , a single developer or developing team writes the client and server programs. As the code does not implement a public domain protocol. The other independent developers can not develop code that interoperates with the application. When developing a proprietary type application, the developer needs to first decide whether the application is to run over TCP or UDP. Sockets Programming with TCP The socket is a programming interface, with which network applications are built. A process sends messages into and receives messages from the network through socket interface software. The processes running on different machines communicate with each other by sending messages into sockets. Socket acts as a door between the application process and TCP as shown in figure.

The application developer’ controls everything on the application layer side of the socket but does not have any control over the transport layer side of the socket. The interaction of the client and server takes place as follows: The client has to initiate contact with the server and when such contact is being initiated, the server should be ready. That means the server must be a running process (not dormant) when a client initiates contact and the server process must have a socket to welcome the initial contact from the client. With the server process running, the client process can now initiate a TCP connection to the server. This is done in the client program by creating the socket. When the client socket is created, the client specifies the address of the server process i.e. the IP address of the server process which is nothing but the IP address of the server host and the port number of the server process. Then the TCP on the client-side initiates a three-way handshake and establishes a connection with the server. During the three-way handshake the client process knocks on the welcoming socket of the server process. The server process responds to this knocking by creating a new socket called connection socket which is dedicated to that particular client.

State diagram for server and client model Stages for serverSocket creation: int sockfd = socket(domain, type, protocol) sockfd: socket descriptor, an integer (like a file-handle) domain: integer, communication domain e.g., AF_INET (IPv4 protocol) , AF_INET6 (IPv6 protocol) type: communication type SOCK_STREAM: TCP(reliable, connection oriented) SOCK_DGRAM: UDP(unreliable, connectionless) protocol: Protocol value for Internet Protocol(IP), which is 0. This is the same number which appears on protocol field in the IP header of a packet. (man protocols for more details)  Setsockopt:  int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); This helps in manipulating options for the socket referred by the file descriptor sockfd. This is completely optional, but it helps in reuse of address and port. Prevents error such as: “address already in use”.  Bind:  int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); After creation of the socket, bind function binds the socket to the address and port number specified in addr(custom data structure). In the example code, we bind the server to the localhost, hence we use INADDR_ANY to specify the IP address.

Listen: int listen(int sockfd, int backlog); It puts the server socket in a passive mode, where it waits for the client to approach the server to make a connection. The backlog, defines the maximum length to which the queue of pending connections for sockfd may grow. If a connection request arrives when the queue is full, the client may receive an error with an indication of ECONNREFUSED.  Accept: int new_socket= accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); It extracts the first connection request on the queue of pending connections for the listening socket, sockfd, creates a new connected socket, and returns a new file descriptor referring to that socket. At this point, connection is established between client and server, and they are ready to transfer data. Stages for ClientSocket connection: Exactly same as that of server’s socket creation  Connect:  int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); The connect () system call connects the socket referred to by the file descriptor sockfd to the address specified by addr. Server’s address and port is specified in addr. Implementation Here we are exchanging one hello message between server and client to demonstrate the client/server model. https://www.geeksforgeeks.org/socket-programming-cc/