在我的应用程序中,我有一台服务器正在侦听localhost上的端口以进行客户端连接。然后我让客户端运行并建立与服务器的连接。我在c#中使用tcpListner作为服务器,客户端使用Inet函数在perl中编写。
客户端和服务器之间的连接建立没有问题,服务器收到客户端的消息。但是,大约3到4秒后,连接丢失。我使用netstat -a来查看连接的状态是否仍然“已建立”。在DOS上使用netstat命令后,结果是“Close_wait”。
如何调试此问题?哪一方导致连接丢失?
由于
编辑:
$tx_socket = IO::Socket::INET->new( PeerAddr => '127.0.0.1', PeerPort => 9000,
LocalPort => 8000, Proto => 'tcp',
Type =>SOCK_STREAM, Reuse=>1 ) or die("$!\n");
die("init_tx_socket failed!\n") unless $tx_socket; print "Socket good!\n";
$tx_socket->autoflush(1); $tx_socket->print("Hello");
sleep(5);
$tx_socket->print("World");
答案 0 :(得分:1)
使用Microsoft Network Monitor或Wireshark捕获网络数据包,或使用System.Net跟踪。
如果没有这样的分析,就不容易分析和处理套接字问题。