Socket会在所有io流关闭后自动关闭。错误代码如下:
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Client is sending message".getBytes(StandardCharsets.UTF_8));
socket.shutdownOutput();
outputStream.close();
InputStream inputStream = socket.getInputStream();
byte[]buf=new byte[1024];
int readlen=0;
while((readlen=inputStream.read(buf))!=-1)
{
System.out.println(new String(buf,0,readlen));
}
inputStream.close();
System.out.println("客户端退出");
可以看到在inputstream创建之前outputstream已经关闭了,由于在服务器端代码如下:
int ok=0;
while((readlen=inputStream.read(buf))!=-1)
{
ok=1;