Techno India College of Technology: Computer Network Lab Manual Paper Code: CS692
Techno India College of Technology: Computer Network Lab Manual Paper Code: CS692
3
Socket programming: TCP sockets Hours
Experiment 1:
Goal 1: Modify a given socket program to communicate between two remote processes.
Goal 2: Modify a given socket program to make concurrent communications.
Guidance:
What is a Socket?
A socket is one endpoint of a two-way communication link between two programs running on the
network. A socket is bound to a port number so that the TCP layer can identify the application that data is
destined to be sent to. An endpoint is a combination of an IP address and a port number. Every TCP
connection can be uniquely identified by its two endpoints.
TCP Sockets
Fig1: Sequence of function calls for the client and a server participating in a TCP connection.
A server runs on a specific computer and has a socket that is bound to a specific port number. The server
just waits, listening to the socket for a client to make a connection request.
The client knows the hostname of the machine on which the server is running and the port number on which
the server is listening. To make a connection request, the client tries to rendezvous with the server on the
server's machine and port. The client also needs to identify itself to the server so it binds to a local port
number that it will use during this connection. This is usually assigned by the system.
If everything goes well, the server accepts the connection. Upon acceptance, the server gets a new socket
bound to the same local port and also has its remote endpoint set to the address and port of the client. It
needs a new socket so that it can continue to listen to the original socket for connection requests while
tending to the needs of the connected client.
On the client side, if the connection is accepted, a socket is successfully created and the client can use the
socket to communicate with the server.
The client and server can now communicate by writing to or reading from their sockets.
Download the two C codes server.c and client.c and start the modifications.
Report:
1. Explain the structures in the provided C codes.
2. Write the modified portions of the code and where should they be inserted.
3. Explain why those particular modifications are done?