Dados que não representam mensagens de controle são entregues - * diretamente ao {@link PrivateConnectionPlugin}. Mensagens de controle + * diretamente ao {@link pitiupi.models.Plugin}. Mensagens de controle * relacionadas ao encerramento ou a erros internos provocam a notificação * do plugin e o fechamento da conexão.
* diff --git a/pitiupi/src/pitiupi/net/tcp/TcpConnection.java b/pitiupi/src/pitiupi/net/tcp/TcpConnection.java index be7c0e4..d6cfb9d 100644 --- a/pitiupi/src/pitiupi/net/tcp/TcpConnection.java +++ b/pitiupi/src/pitiupi/net/tcp/TcpConnection.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.net.InetAddress; import java.net.Socket; import java.net.SocketException; +import java.util.Arrays; /** * Representa uma conexão TCP ativa com um peer remoto. @@ -77,6 +78,7 @@ public class TcpConnection { byte[] message = input.readNBytes(length); + if (message.length != length) { throw new IOException("Connection closed before receiving the complete message."); }