本文概述
- 什么是套接字编程?
- Perl创建服务器
- Perl创建客户端
- Perl套接字编程示例
- Perl套接字读写程序
计算机通过计算机上运行的各种应用程序接收和发送信息。该信息通过分配给它的唯一IP地址路由到系统。通信期间发送的数据为” 协议” 格式。这些协议是所有通信伙伴都接受的规则。套接字通信中有许多目的不同的协议格式。最常用的协议是TCP / IP协议。
对于服务器-客户端程序, 我们需要创建两个Perl脚本。一个用于服务器, 另一个用于客户端。这两个控制台将彼此通信。你可以在客户端输入数据, 该数据将显示在服务器端控制台上。
Perl创建服务器 按照以下步骤创建套接字服务器。
- 使用套接字调用创建套接字。
- 使用绑定调用将套接字绑定到端口地址。
- 在端口地址使用监听调用的监听套接字。
- 使用accept调用接受客户端连接。
- 使用套接字调用创建套接字。
- 使用connect调用连接套接字到服务器。
服务器端脚本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);
输出
文章图片
Perl套接字读写程序 在此客户端服务器程序中, 我们将从客户端控制台上的用户那里获取输入。该输入将通过客户端-服务器通信显示在服务器的控制台上。
在这里, 服务器端脚本将与以前的脚本相同。
服务器端脚本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 = http://www.srcmini.com/<
STDIN>
;
chomp $data;
print $socket"This is the data entered by user '$data'\n";
close($socket);
【Perl套接字编程】输出
文章图片
推荐阅读
- Perl split函数
- Perl标量用法
- Perl正则表达式
- Perl redo语句
- Perl print()和say()
- Perl运算符
- Perl运算符类型
- Perl对象概念(面向对象编程)
- Perl next语句