📅  最后修改于: 2021-01-07 08:42:08             🧑  作者: Mango
套接字是帮助在网络上不同进程之间建立虚拟连接的过程。
计算机通过计算机上运行的各种应用程序接收和发送信息。该信息通过为其分配的唯一IP地址路由到系统。通信期间发送的数据为“协议”格式。这些协议是所有通信伙伴都接受的规则。套接字通信中有许多目的不同的协议格式。最常用的协议是TCP / IP协议。
对于服务器-客户端程序,我们需要创建两个Perl脚本。一个用于服务器,另一个用于客户端。这两个控制台将相互通信。您可以在客户端输入数据,该数据将显示在服务器端控制台上。
按照以下步骤创建套接字服务器。
遵循以下步骤创建客户端套接字。
在此程序中,我们显示了客户端数据Hello World!在服务器端控制台上。
服务器端脚本server.pl
#!/usr/bin/perl -w
use IO::Socket;
use strict;
use warnings;
my $socket = new IO::Socket::INET (
LocalHost => 'localhost',
LocalPort => '1234',
Proto => 'tcp',
Listen => 1,
Reuse => 1,
);
die "Could not create socket: $!n" unless $socket;
print "Waiting for the client to send data\n";
my $new_socket = $socket->accept();
while(<$new_socket>) {
print $_;
}
close($socket);
客户端脚本client.pl
use strict;
use warnings;
use IO::Socket;
my $socket = new IO::Socket::INET (
PeerAddr => 'localhost',
PeerPort => '1234',
Proto => 'tcp',
);
die "Could not create socket: $!n" unless $socket;
print $socket "Hello World!!\n";
close($socket);
输出:
在此客户端服务器程序中,我们将从客户端控制台上的用户那里获取输入。该输入将通过客户端-服务器通信显示在服务器的控制台上。
在这里,服务器端脚本将与以前的脚本相同。
服务器端脚本server.pl
#!/usr/bin/perl -w
use IO::Socket;
use strict;
use warnings;
my $socket = new IO::Socket::INET (
LocalHost => 'localhost',
LocalPort => '1234',
Proto => 'tcp',
Listen => 1,
Reuse => 1,
);
die "Could not create socket: $!n" unless $socket;
print "Waiting for the client to send data\n";
my $new_socket = $socket->accept();
while(<$new_socket>) {
print $_;
}
close($socket);
客户端脚本client.pl
use strict;
use warnings;
use IO::Socket;
my $socket = new IO::Socket::INET (
PeerAddr => 'localhost',
PeerPort => '1234',
Proto => 'tcp',
);
die "Could not create socket: $!n" unless $socket;
print "Enter the data:\n";
my $data = ;
chomp $data;
print $socket "This is the data entered by user '$data'\n";
close($socket);
输出: