【发布时间】:2013-05-24 12:02:41
【问题描述】:
请看示例here。
希望能够保持连接有效并向服务器发送多个客户端消息,我将代码更改为:
// Send the message to the server
OutputStream os = Client.socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
InputStream is = Client.socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
for (int i = 0; i < 10; i++) {
String sendMessage = i + "\n";
bw.write(sendMessage);
bw.flush();
System.out.println("Message sent to the server : " + sendMessage);
String message = br.readLine();
System.out.println("Message received from the server : " + message);
}
我不明白为什么这只适用于第一条消息。
谁能解释一下?
更新:
系统输出:
服务器端:
`Server Started and listening to the port 25000`
`Message received from client is 0`
`Message sent to the client is 0`
客户端:
`Message sent to the server : 0`
`Message received from the server : 0`
`Message sent to the server : 1`
【问题讨论】:
-
看起来服务器正在关闭连接。你有你的代码打印的值吗?有服务器代码吗?
-
@Martin,是的,服务器代码是引用网站上列出的代码。服务器说:服务器已启动并监听端口 25000 从客户端接收的消息为 0 发送到客户端的消息为 0。
客户端说:发送到服务器的消息:0 从服务器接收的消息:0 发送到的消息服务器:1 -
服务器读取一条消息,发送响应,然后关闭套接字。所以显然你还必须改变服务器。
标签: java sockets client-server