Ho scritto un semplice programma di socket, funziona bene, ma il mio amico usa uno strumento di scansione delle porte, quando esegue la scansione sulla porta che sto usando, incassa con errore "java.net.SocketException: Broken pipe", cosa succede? e come risolverlo?Perché si verifica un "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();
}
Particolare errore da console:
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()' non restituisce nulla. Il test è inutile. – EJP