What is SOCKET?
Socket is a mechanisms that creates virtual connection between different processes. Established connection is duplex in nature. This was scaled over OS for communication between systems across geographical location. Network communication between systems happens only because of Socket.
Let’s understand Socket programming using SERVER-CLIENT model.
Server Side Socket Calls :
For creating a server, we first create a socket. Then bind socket to a port. We listen to socket and accept client connections.
socket(socket, domain, type, protocol) #creating a socket
bind(socket, address) #binding socket to port
listen(socket, queuesize) #listening to socket
accept(socket_conn, socket) #accepting calls
Client Side Socket calls
Create a socket and connect call to server.
socket(socket, domain, type, protocol) #create a socket
connect(socket, address) #connect to server
Now we create an example of Socket (server-client) communication.
#SERVER-SIDE
use strict;
use socket;
my $port = ""; #set port or use default
my $protcol = ""; #set protocol (tcp/udp)
my $server = ""; #set server name or use localhost
socket (socket,pf_inet,sock_stream,$protcol) or die "unable to open socket \n";
setsockopt(socket,connection_type,useraddr,1) or die "unable to set socket option to useraddr \n";
bind(socket,pack_sockaddr_in($port,inet_aton($server))) or die "unable to bind port \n";
listen(socket,5);
print "STARTED xD";
my $client;
while($client=accept(conn,socket)){
print conn= "Hello There";
while (my $recv = <$conn>){
print $recv;
}
# to close connection
close conn;
}
#Client-side
use strict;
use socket;
my $port = ""; #set port or use default
my $host = ""; #set host or use localhost
my $server = ""; #set server name or use localhost
my $protcol = ""; #set protocol (tcp/udp)
socket (socket,pf_inet,sock_stream,$protcol) or die "unable to open socket \n";
connect(socket,pack_sockaddr_in($port,inet_aton($server))) or die "unablen to connect to $port \n";
my $recv;
while($recv=<socket>){
print $recv;
print $socket "GENERAL KENOBI!!!!"
}
close socket or die "THIS IS THE WAY";
O/P:
Hello There
GENERAL KENOBI
Keep Learning! 🙂
May The Force Be With You