【发布时间】:2016-11-22 00:37:19
【问题描述】:
我在从客户端向服务器发送和接收字符串时遇到了一点问题。假设我正确设置了套接字。 这是我用来发送/接收服务器端的:
fromClient = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
toClient = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
String clientInput;
clientInput = fromClient.readLine();
是我的服务器如何接收来自客户端的输入。
客户端相同的交易:
toServer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
fromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
inputLine = bufferedReader.readLine(); //inputLine reads from the console
toServer.write(inputLine);
我可以向服务器发送一条消息,它会接收它,但是当我取消注释此位时,客户端可以接收来自服务器的响应:
// serverInput = fromServer.readLine();
//
// System.out.println(serverInput);
它将挂起,服务器端不会收到发送的初始消息。我不知道出了什么问题,我只想得到服务器的回复。任何帮助表示赞赏。谢谢
【问题讨论】:
-
你有没有在服务器端调用
toClient.write(clientInput)? -
在clientInput = fromClient.readLine();之后,我打印clientInput,它会打印出来。但如果我使用 "toClient.write("receive this please");"在客户端取消注释该位之后,它将挂起,甚至不会收到初始消息
-
没关系....我想通了。我必须在写入参数中添加一个 + '\n' ,然后再进行刷新。
-
没错,我在写答案的时候看到了你的评论。
标签: java sockets server client