Socket in Computer Network
A socket is one endpoint of a two way communication link between two programs running on the network. The socket mechanism provides a means of inter-process communication (IPC) by establishing named contact points between which the communication take place.
Like ‘Pipe’ is used to create pipes and sockets is created using ‘socket’ system call. The socket provides bidirectional FIFO Communication facility over the network. A socket connecting to the network is created at each end of the communication. Each socket has a specific address. This address is composed of an IP address and a port number.
Socket are generally employed in client server applications. The server creates a socket, attaches it to a network port addresses then waits for the client to contact it. The client creates a socket and then attempts to connect to the server socket. When the connection is established, transfer of data takes place.
Types of Sockets :
There are two types of Sockets: the datagram socket and the stream socket.
- Datagram Socket :
This is a type of network which has connection less point for sending and receiving packets. It is similar to mailbox. The letters (data) posted into the box are collected and delivered (transmitted) to a letterbox (receiving socket).
- Stream Socket
In Computer operating system, a stream socket is type of interprocess communications socket or network socket which provides a connection-oriented, sequenced, and unique flow of data without record boundaries with well defined mechanisms for creating and destroying connections and for detecting errors. It is similar to phone. A connection is established between the phones (two ends) and a conversation (transfer of data) takes place.
|Create()||To create a socket|
|Bind()||It’s a socket identification like a telephone number to contact|
|Listen()||Ready to receive a connection|
|Connect()||Ready to act as a sender|
|Accept()||Confirmation, it is like accepting to receive a call from a sender|
|Write()||To send data|
|Read()||To receive data|
|Close()||To close a connection|