我对网络编程完全陌生,无法解决这个问题
我有一个服务器(某种 LPT 端口到 TCP/IP 代理),它会自动尝试以随机间隔建立连接。我需要监听特定端口并与服务器通信。那是客户。它适用于 perl tcp 服务器.. 但在这种情况下它会等待.... 没有任何反应
#!/usr/bin/perl -w
use IO::Socket;
my $sock = new IO::Socket::INET(
LocalHost => '192.168.1.1',
LocalPort => '7000',
Proto => 'tcp',
Listen => 1,
Reuse => 1,
);
die "Could not create socket: $!\n" unless $sock;
my $new_sock = $sock->accept();
while (<$new_sock>) {
print $_;
}
close($sock);
它适用于我的简单 tcp 服务器,但使用这个“黑盒” - 不,在客户端机器上有两个连接:
tcp 0 0 192.168.1.1:7000 0.0.0.0:* LISTEN
tcp 0 0 192.168.1.1:7000 192.168.1.2:33822 ESTABLISHED
但如果我尝试
nc -l 192.168.1.1 7000
它就像一个魅力,数据在流动。并且只有一个连接存在(如第二个)
在客户端捕获的一个符号传输的 tcpdump 片段。似乎还可以
21:42:00.242172 IP (tos 0x0, ttl 64, id 30448, offset 0, flags [DF], proto TCP (6), length 53)
192.168.1.2.33837 > 192.168.1.1.7000: Flags [P.], cksum 0x5646 (correct), seq 3592562130:3592562131, ack 1351632513, win 92, options [nop,nop,TS val 140364552 ecr 92554083], length 1
我不知道我做错了什么......更复杂的例子对我不起作用,因为我不知道如何调试它们......