我想将socket中的输入流读入byteArray,但是我得到了以下错误:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
我不知道为什么因为在我读完inputStream之前我不会关闭我的插座
try {
in = connexion.getSocket().getInputStream();
out = connexion.getSocket().getOutputStream();
byte[] buffer= new byte[2048] ;
ByteArrayOutputStream baos= new ByteArrayOutputStream();
int read = 0;
while((read = in.read(buffer)) > 0) // exception thrown here
{
baos.write(buffer, 0, read);
}
reception = baos.toByteArray();
}
catch (IOException e) {
e.printStackTrace();
}
finally{
try{
in.close();
out.close();
connexion.getSocket().close();
}
catch(IOException ioException){
ioException.printStackTrace();
}
}
服务器端:
public static void main(String[] args) throws Exception {
ServerSocket s = new ServerSocket(port,2);
Socket soc ;
while(true){
soc = s.accept(); } }
非常感谢
答案 0 :(得分:2)
在阅读之前,服务器似乎已关闭连接。这可能是您发送的请求或最终问题的问题。
答案 1 :(得分:0)
解决 我在检索输入流之前设置了一点暂停,现在效果很好 谢谢大家
答案 2 :(得分:0)
我看到你已经解决了这个问题,但我最近遇到了类似的情况。我发现实际上导致这个问题的是你读取字节数组的数组大小。我尝试读取的数据比连接ConnectionReset的套接字读取的数据多,尝试使用大小为1。
Saludos!