【发布时间】:2012-03-02 04:03:14
【问题描述】:
我写了一个简单的socket程序,效果很好,但是我朋友用的是端口扫描工具,当它扫描到我正在使用的端口时,它会出现“java.net.SocketException:Broken pipe”错误,这是怎么回事?以及如何解决?
providerSocket = new ServerSocket(portNum);
connection = providerSocket.accept();
if (connection.getOutputStream() != null) {
//this line crash!!!
out = new ObjectOutputStream(connection.getOutputStream());
out.flush();
}
来自控制台的详细错误:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1847)
at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1756)
at java.io.ObjectOutputStream.<init>(ObjectOutputStream.java:230)
【问题讨论】:
-
connection.getOutputStream()不返回空值。测试毫无意义。