【发布时间】:2009-11-22 22:39:02
【问题描述】:
我已经编写了一个 EchoServer,如果数据已被相应发送,它会以字符串 ack 进行响应。
我的客户端看起来像这样......为了从服务器接收 ack 应答,“echoSocket”将接收到的数据放入我的 ObjectInputStream。只有当我将这些部分注释掉时,客户才能工作
echoSocket = new Socket(server_name, tcp_port);
System.out.println(" *** Connected to " + server_name + " ***");
System.out.println("Press Enter to send your message.");
out = new ObjectOutputStream(echoSocket.getOutputStream());
in = new ObjectInputStream(echoSocket.getInputStream());
out.flush();
String message = System.console().readLine();
while(!message.equals("quit")) {
// problem
if (in.readObject().equals(ack))
System.out.println("ACKed");
in.close();
// problem ends
out.flush();
out.writeObject(message);
System.out.println("Sending: " + message);
message = System.console().readLine();
out.flush();
}
有人知道为什么它不会发送我的字符串吗?
谢谢, 马吕斯
【问题讨论】:
-
ack 是字符串文字吗?改为:if (in.readObject().equals("ack"))