使用IO::Socket::INET模块。
您可以连接到本地主机上的端口
$sock = IO::Socket::INET->new('127.0.0.1:2525');
Run Code Online (Sandbox Code Playgroud)
或到另一个地址
$sock = IO::Socket::INET->new("host.example.com:6789");
Run Code Online (Sandbox Code Playgroud)
这些示例假设 Perl 程序将是客户端,并且您已经用 C# 编写了服务器。如果情况相反,请使用 IO::Select 模块。以下是其文档中的示例:
use IO::Select;
use IO::Socket;
$lsn = new IO::Socket::INET(Listen => 1, LocalPort => 8080);
$sel = new IO::Select( $lsn );
while (@ready = $sel->can_read) {
foreach $fh (@ready) {
if ($fh == $lsn) {
# Create a new socket
$new = $lsn->accept;
$sel->add($new);
}
else {
# Process socket
# Maybe we have finished with the socket
$sel->remove($fh);
$fh->close;
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,您可以从 C# 连接到本地主机上的端口 8080。
端口的选择大多是任意的。双方需要就集合点的端口达成一致,要避免1024以下的端口。是连接localhost还是其他地址,由服务器绑定的地址决定。要绑定到网络可访问地址,请修改上面的代码以使用
$lsn = new IO::Socket::INET(Listen => 1, LocalAddr => "host.example.com:8080");
Run Code Online (Sandbox Code Playgroud)
大小为 1(Listen
参数)的积压异常。典型的大小是SOMAXCONN
from的值sys/socket.h
。