个性化阅读
专注于IT技术分析

Perl套接字编程

本文概述


什么是套接字编程?

套接字是帮助在网络上不同进程之间建立虚拟连接的过程。

计算机通过计算机上运行的各种应用程序接收和发送信息。该信息通过分配给它的唯一IP地址路由到系统。通信期间发送的数据为”协议”格式。这些协议是所有通信伙伴都接受的规则。套接字通信中有许多目的不同的协议格式。最常用的协议是TCP / IP协议。

对于服务器-客户端程序, 我们需要创建两个Perl脚本。一个用于服务器, 另一个用于客户端。这两个控制台将彼此通信。你可以在客户端输入数据, 该数据将显示在服务器端控制台上。


Perl创建服务器

按照以下步骤创建套接字服务器。

  • 使用套接字调用创建套接字。
  • 使用绑定调用将套接字绑定到端口地址。
  • 在端口地址使用监听调用的监听套接字。
  • 使用accept调用接受客户端连接。

Perl创建客户端

遵循以下步骤创建客户端套接字。

  • 使用套接字调用创建套接字。
  • 使用connect调用连接套接字到服务器。

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);

输出

Perl套接字编程1

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 = <STDIN>;
chomp $data;
print $socket "This is the data entered by user '$data'\n";
close($socket);

输出

Perl套接字编程2
赞(0)
未经允许不得转载:srcmini » Perl套接字编程

评论 抢沙发

评论前必须登录!