我在Perl中使用TCP protocol
编写了示例client and server
程序。 所以我用send()
和recv()
函数。 因为我试图获得recv()
函数的返回值。 示例代码,如何在perl中使用TCP协议检查recv()和send()的返回值?
my $return_value;
$return_value = recv($client_socket, $data, 50, 0);
print "return value is: $return_value\n";
当我执行我的代码,它不打印任何价值。 例如:
return value is:
后,我读了下面的链接,即使我没有得到任何的回报价值。 return value of recv() function in perl
我该如何解决这个问题?
谢谢。
http://perldoc.perl.org/functions/recv.html recv - 如果scket的协议支持,返回发送者地址 –
'recv()'的返回值是一个二进制值,你必须传递给'Socket :: unpack_sockaddr_in()'获取IP地址和端口。我想它通常会打印成乱码,但它可能只是在您的情况下不包含任何可打印的字符。你可以尝试将你的输出输出到'xxd'来查看它们。这就是说,虽然它可能是工作'recv()'实际上并不是TCP服务器的首选功能。你可以使用'print()'和'<>'来进行基于行的通信,或者使用'read()'/'write()'来获得更好的东西。 – mbethke