Perl IO::Socket-无法确定对等地址
我在第251行或其附近遇到IO/Socket.pm引起的问题Perl IO::Socket-无法确定对等地址,perl,Perl,我在第251行或其附近遇到IO/Socket.pm引起的问题 croak 'send: Cannot determine peer address' unless($peer); 基本上,我们正在打开一个连接,并向它发送数据。由于某种原因,在10-20秒后会抛出此错误 发送:无法确定对等地址 有什么想法吗 #!/usr/bin/perl package Dialer; use Data::Dumper; use IO::Socket; $sock = IO::S
croak 'send: Cannot determine peer address'
unless($peer);
基本上,我们正在打开一个连接,并向它发送数据。由于某种原因,在10-20秒后会抛出此错误
发送:无法确定对等地址
有什么想法吗
#!/usr/bin/perl
package Dialer;
use Data::Dumper;
use IO::Socket;
$sock = IO::Socket::INET->new(PeerAddr => '255.255.255.255',
PeerPort => '5038',
Proto => 'tcp');
$res = $sock->send("Action: Login\r\nUsername: dunzo\r\nSecret: 123456789\r\nEvents: \r\n\r\n");
sleep(5);
while(1==1) {
$res = $sock->send("Action: Originate\r\nChannel: Local/123123@dunzodial\r\nExten: 123123\r\nContext: dunzo\r\nTimeout: 60000\r\nVariable: \r\nAsync: yes\r\nCallerID:
1234567890\r\nPriority: 1\r\n\r\n");
$incr++;
sleep(1);
print $incr."\n";
}
对于TCP协议,
255.255.255.255
不是有效的单播IP地址。在本例中,IO::Socket::INET将255.255.255.255
视为域名。它将通过查询主机名为255.255.255.255
的DNS服务器来请求IP地址。显然没有这样的记录,DNS查询操作将超时。这就是为什么在10~20秒后出现错误 TCP还是UDP?是否已连接(构造函数中的PeerAddr)?您将哪些参数传递给send
?请粘贴您的脚本(当然是相关部分)
$sock = IO::Socket::INET->new(PeerAddr => '255.255.255.255',
PeerPort => '5038',
Proto => 'tcp');