起初,我很抱歉对以下问题做了长时间的解释。
我有一个简单的TCP客户端。以下是代码片段:
......
ouputStream = socket.getOutputStream();
. .....
bufferedOutputStream.flush();
socket.shutdownOutput();
......
InputStream is = socket.getInputStream();
.....
while(r=bufferedReader.read()!-1){
Reading the response
}
socket.shutdownInput();
.......
socket.close();我的TCP客户端可以与除一个特定的TCP服务器以外的多个TCP服务器配合使用我的TCP客户端在上午和下午(服务器提取小时)没有得到该服务器的响应,但是在晚上,夜晚和清晨没有任何问题的情况下完成响应。
因此,我已经使用WireShark在服务器拣选时间内检查网络数据包。
WireShark的挑选时间段的检查代码片段:
4 0.072547 CCC.CCC.CCC.CCC SSS.SSS.SSS.SSS TCP 66 clientPort > serverPort [FIN, ACK] Seq=2008 Ack=1 Win=14720 Len=0 TSval=992536 TSecr=4189227564
....
....
7 0.156504 SSS.SSS.SSS.SSS CCC.CCC.CCC.CCC TCP 66 serverPort > clientPort [ACK] Seq=1 Ack=1449 Win=8704 Len=0 TSval=332931140 TSecr=259206577
8 0.159312 SSS.SSS.SSS.SSS CCC.CCC.CCC.CCC TCP 78 [TCP Dup ACK 7#1] serverPort > clientPort [ACK] Seq=1 Ack=1449 Win=8704 Len=0 TSval=332931141 TSecr=259206577 SLE=2008 SRE=2009
[SEQ/ACK analysis]
[TCP Analysis Flags]
[This is a TCP duplicate ack]
[Duplicate ACK #: 1]
[Duplicate to the ACK in frame: 7]
[Expert Info (Note/Sequence): Duplicate ACK (#1)]
[Message: Duplicate ACK (#1)]
[Severity level: Note]
[Group: Sequence]
Note: SSS.SSS.SSS.SSS is server ip and CCC.CCC.CCC.CCC is client ip是TCP服务器的问题吗? OR socket.shutdownOutput()和socket.shutdownInput()负责重复ACK吗?
我不确定问题在哪里,因为其他服务器对于我的TCP客户端(使用shutdownOutput和shutdownInput)是正常的,并且该特定服务器在使用时间内没有响应
(早上和下午)时间,但其他时间工作。
如果有人向我暗示这个问题,我会很高兴。