在perl中返回recv()函数的值
发布时间:2020-12-16 06:17:21 所属栏目:大数据 来源:网络整理
导读:我用这种方式在perl中有非阻塞UDP套接字 my $my_sock = IO::Socket::INET-new(LocalPort = $MY_PORT,Proto = 'udp',Blocking = '0') or die "socket: $@"; recv电话是 my $retValue = $sock-recv($my_message,64); 我需要知道 a)当没有数据可供阅读时 b)如果
我用这种方式在perl中有非阻塞UDP套接字
my $my_sock = IO::Socket::INET->new(LocalPort => $MY_PORT,Proto => 'udp',Blocking => '0') or die "socket: $@"; recv电话是 my $retValue = $sock->recv($my_message,64); 我需要知道 令人惊讶的是,我没有看到perldoc中recv的任何返回值.当我自己尝试时,recv在(a)中返回undef,因为b是一个不可打印的字符 这似乎是一个基本问题.但是,我仍然无法在google搜索或堆栈溢出时找到相关信息.谢谢任何输入 解决方法
根据perldoc,如果SOCKET的协议支持,recv“返回发送方的地址;否则返回一个空字符串.如果有错误,则返回未定义的值.”
如果你得到一个undef,这意味着recv遇到错误. 代码中的错误如下: $retValue = $sock->recv($my_message,64); recv的函数原型是: recv SOCKET,SCALAR,LENGTH,FLAGS 根据perldoc,recv“尝试从指定的SOCKET文件句柄接收数据的LENGTH字符到变量SCALAR.SCALAR将增长或缩小到实际读取的长度.” 尝试: $retvalue = recv($sock,$my_message,64) 这是我获得所有信息的地方: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |