我有以下用於向服務器發送字符串的客戶端套接字。服務器沒有收到消息。可能是什麼,他們?Java Socket不向服務器發送消息
public void startClient() throws IOException {
Socket socket = null;
PrintWriter out = null;
BufferedReader in = null;
InetAddress host = null;
BufferedReader stdIn = null;
try {
host = InetAddress.getByName("172.16.2.97");
socket = new Socket(host, 52000);
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
stdIn = new BufferedReader(new InputStreamReader(System.in));
String fromServer;
String fromUser = null;
//ClientHelper.unpackISO();
fromUser = ClientHelper.createISO();
if (fromUser != null) {
//System.out.println("Client - " + fromUser);
out.write(fromUser);
System.out.println("Sent message");
}
while ((fromServer = in.readLine()) != null) {
System.out.println("Server - " + fromServer);
if (fromUser != null) {
//System.out.println("Client - " + fromUser);
out.println(fromUser);
}
}
} catch (ISOException ex) {
Logger.getLogger(ClientDemo.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnknownHostException e) {
System.err.println("Cannot find the host: " + host.getHostName());
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't read/write from the connection: " + e.getMessage());
System.exit(1);
} finally { //Make sure we always clean up
out.close();
in.close();
stdIn.close();
socket.close();
}
}
方法ClientHelper.createISO()返回,其應該被髮送到服務器的字符串。不幸的是,服務器沒有得到任何字符串。問題可能是代理設置。如果是這樣怎麼解決的。或者它是我的代碼的另一個問題? 我的代碼有什麼問題?
你有什麼異常嗎?你能從服務器接收嗎? – Fildor 2013-04-30 11:11:49
什麼是你得到任何異常堆棧跟蹤的錯誤。 – 2013-04-30 11:12:42
服務器如何知道它已收到所有字符串? – 2013-04-30 11:13:03