【发布时间】:2014-07-27 13:56:01
【问题描述】:
我在试图找到解决问题的方法时遇到了一个真正的问题,希望你们能提供帮助。我在网上看到了许多套接字示例,但无法修改它们以供我使用。 Tbh,我什至难以理解套接字。到目前为止我能够修改的内容如下。
我的问题,我相信我的客户端程序没有读取来自服务器的传入消息,有人可以使用我的示例来演示我哪里出错了。我脑海中的某件事告诉我,我的客户端套接字在有机会读取任何传入消息之前就关闭了。也许让客户等到收到消息?如果需要等待,这是如何实现的?提前致谢。
客户:
try {
Socket socket = new Socket("localhost", 55555);
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.write(score);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String rank = in.readLine();
System.out.println(rank);
in.close();
out.close();
socket.close();
}
catch(Exception e) {
System.out.print("Whoops! It didn't work!\n");
}
服务器:
try {
System.out.println("Waitng for client to connect.....");
ServerSocket server = new ServerSocket(55555);
Socket socket = server.accept();
System.out.print("Client has connected!\n");
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String score = (in.readLine());
scor = Long.parseLong(score);
leaderboard(); ///// A METHOD THAT USES LONG SCORE TO CALCULATE RANKING- RETURNS A STRING VALUE CALLED RANK
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
System.out.print("Sending rank: " + rank);
out.write(rank);
out.close();
socket.close();
server.close();
}
catch(Exception e) {
System.out.print("Whoops! It didn't work!\n")`enter code here`;
}
【问题讨论】:
-
你有什么例外吗?您是否使用换行符发送 - 您至少在等待一个?
-
不,我没有遇到任何异常。如果换行的意思是\n,不,我不...应该吗?如果是这样,在哪里,为什么?感谢您的回复。
标签: java string sockets client