- 论坛徽章:
- 0
|
本帖最后由 sithui 于 2013-01-09 16:40 编辑
抄了一个测试程序,收发数据用。
发现直接输入的可读字符可以显示,调试协议时的数据并不是可见字符的,显示为空。
同时我也不知道怎么从recv函数中得到收到的数据量。
我查了IO::Socket::INET,发现perldoc和CPAN里都没有对recv函数的详细讲解。
perl平时当工具用一用,实在是不熟。还请大神们帮帮忙!
代码如下:- use IO::Socket;
- my $sock = new IO::Socket::INET (
- PeerAddr => '192.168.1.170',
- PeerPort => '20000',
- Proto => 'udp',
- );
- die "Could not create socket: $!\n" unless $sock;
- print $sock "Hello there!\n";
- while (1){
- print "\nPlease input:";
- my $msg_out=<STDIN>;
- if ($msg_out eq "\n"){next;}
-
- if ($msg_out=~/quit/i)
- {
- print$sock "I will quit,bye!";
- close($sock);
- exit 0;
- }
- print $sock $msg_out;
- my $msg_in;
- my $rlen=1024;
- my $peer = $sock->recv($msg_in, $rlen, 0);
- print "Server result[$rlen]:$msg_in\n";
- print_hex($msg_in);
- }
- close($sock);
复制代码 |
|