我正在创建一个简单的客户机 - 服务器应用程序,并在通过Socket传递消息时面临一些奇怪的行为:当客户机写入服务器时,消息正确传递,但是当服务器发送对此,取其值通过套接字发送似乎得到复制...通过套接字传递字符串重复值
这里是服务器的操作示例代码:
.
.
.
public void respond(Socket socket)
{
try
{
InputStreamReader inStream = new InputStreamReader(socket.getInputStream());
PrintWriter outStream = new PrintWriter(
new OutputStreamWriter(socket.getOutputStream(), "UTF-16"));
outStream.write("Message received\n");
outStream.flush();
.
.
.
}
catch (Exception e) { /* Do something */ }
}
.
.
.
服务器和客户端当前在同一台机器上运行。此外,从客户端写入服务器时编码似乎不成问题,但是从服务器写入客户端时:如果我为OutputStreamWriter指定任何其他(或不包含)UTF-16编码,则客户端将获得无法正确解析消息。
你们有没有想法为什么这可能是?
我认为你犯了一个错误粘贴你的代码,taht不编译(重复变量)。 – Dici 2014-11-05 17:24:23
有可能您的代码实际上并未被编译,而是在现有编译中运行,因为您有两次相同的代码块,导致重复的变量错误。 – Zymus 2014-11-05 17:28:40
Sry,发生粘贴时,我编辑它,仍然是同样的问题 – pablo 2014-11-05 17:45:01