首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perl IO::Socket -无法确定对等地址

Perl IO::Socket -无法确定对等地址
EN

Stack Overflow用户
提问于 2011-04-11 20:16:09
回答 1查看 1.8K关注 0票数 0

我有一个问题源于IO/Socket.pm在第251行或附近。

代码语言:javascript
复制
    croak 'send: Cannot determine peer address'
     unless($peer);

基本上,我们正在打开一个连接,并将数据发送到它。由于某种原因,在10-20秒后,会抛出此错误。

发送:无法确定对等地址

有什么主意吗?

代码语言:javascript
复制
    #!/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";
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-12 03:23:56

代码语言:javascript
复制
$sock = IO::Socket::INET->new(PeerAddr => '255.255.255.255',
                             PeerPort => '5038',
                             Proto    => 'tcp');

对于TCP协议,255.255.255.255不是有效的单播IP地址。在本例中,IO::Socket::INET将255.255.255.255视为域名。它将通过使用主机名255.255.255.255查询您的DNS服务器来请求IP地址。显然没有这样的记录,DNS查询操作将是超时。这就是为什么你在10~20秒后出错的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5627017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档