Java套接字写挂了?

时间:2012-10-12 09:43:55

标签: java sockets stream block

我的一个详尽的JUnit在重复过程中被写入阻塞。

这个流程就像在FTP上被动检索一样:

JUnit ----------- MOVE_REQ (dst port 4104) --------------------> Server
loop {
    JUnit <------ SEND_REQ with the object (dst port 1104) ---------- Server
    JUnit --------------- SEND_RSP  (same connection) --------------> Server
}
JUnit <-------- MOVE_RSP (same connection as first one) ----------- Server

所有链都由JUnit同时在多个线程中同时执行。 JUnit端的服务器(参加SEND_REQ的服务器)是一个包含5个线程的池,与另一端的服务器完全相同。

在调试中,我可以看到服务器挂起了一个16384字节的OutputStream.write中的SEND_REQ。 另一方面,jUnit的服务器卡住了只有6个字节的InputStream.read来读取流。

我想到的第一件事是我没有关闭所有连接,因此我在缓冲区上有任何泄漏。但是我已经用TcpView验证了它,它很好,当时只有一个连接

enter image description here

知道为什么会这样吗?

0 个答案:

没有答案