Perl网络套接字编程全解析
1. Socket API与IO::Socket模块
在网络编程里,Perl提供了对套接字的原生支持,同时还有一个名为 Socket
的模块,它能够平滑处理一些原生套接字调用中存在的问题。不过,在实际操作中,仍有大量的选项需要处理。由于大多数应用程序使用的是一套相当标准的选项,所以我们会使用一个非常方便的模块 IO::Socket
,它是基于 Socket
构建的。接下来,我们将使用这个模块构建一个发送和接收程序。
1.1 接收器
在网络通信里,发送方和接收方都需要向模块请求创建套接字,这就如同向电话公司申请电话号码和实体电话一样。套接字和电话一样,是双向的端点。一旦建立连接,只要两个程序之间对通信方向达成共识,任何一方都可以发送和接收数据。
因为只有接收方需要有一个众所周知的地址,所以我们按如下方式创建接收套接字:
use IO::Socket;
$sock = new IO::Socket::INET (LocalHost => 'goldengate',
LocalPort => 1200,
Proto => 'tcp',
Listen => 5,
Reuse => 1,