Iva*_*ire 3 java sockets multithreading tcp
我试图让客户端向服务器发送请求并在保持连接的同时收到响应.
如果我关闭套接字:
//server side
outToClient.writeBytes("Message to send");
connectionSocket.close();
//client side
serverResponse = inFromServer.readLine();
System.out.println("FROM SERVER: " + serverResponse);
Run Code Online (Sandbox Code Playgroud)
客户端输出
FROM SERVER:要发送的消息
之后,显然连接丢失了.
如果我不关闭套接字:
//server side
outToClient.writeBytes("Message to send");
//client side
serverResponse = inFromServer.readLine();
System.out.println("FROM SERVER: " + serverResponse);
Run Code Online (Sandbox Code Playgroud)
客户端没有输出.服务器从不发送消息,或者客户端从未接收消息.
有人知道这可能发生的原因吗?客户端使用线程来接收消息,使用线程来发送消息.客户端套接字在主客户端线程中创建,因此接收方和发送方线程使用当前套接字进行通信.
提前致谢.
如果客户端希望读取一行,则服务器应该写一行.一行由一个\n
字符终止.
可能还需要刷新您用于将数据发送到客户端的流:
outToClient.writeBytes("Message to send\n");
outToClient.flush();
Run Code Online (Sandbox Code Playgroud)
没有看到代码,很难说是否需要刷新.