[英]No response received from the server
我無法從服務器收到響應。 當我啟動客戶端和服務器時,什么也沒有發生。
這是服務器代碼
public class Server {
public static void main(String[] zero) throws IOException {
ServerSocket socketServer;
Socket socketDuServer;
PrintWriter out;
BufferedReader in;
socketServer = new ServerSocket(2009);
socketDuServer = socketServer.accept();
in = new BufferedReader(new InputStreamReader(socketDuServer.getInputStream()));
String message = in.readLine();
out = new PrintWriter(socketDuServer.getOutputStream(), true);
String numberMessage = "The Number of ET est:" + StringToArrayChar(message);
System.out.println(numberMessage);
out.print(numberMessage);
out.flush();
socketDuServer.close();
socketServer.close();
}
public static int StringToArrayChar(String s) {
int c = 0, k = 0;
char[] charArray = s.toCharArray();
for (int j = 0; j < s.length(); j++) {
if (charArray[j] == 'e') {
k = j + 1;
if (charArray[k] == 't') {
c++;
}
}
}
return c;
}
}
這是客戶代碼
public class Client {
public static void main(String[] args) throws IOException {
Socket socket;
BufferedReader in;
PrintWriter out;
String message;
socket = new Socket(InetAddress.getLocalHost(), 2009);
out = new PrintWriter(socket.getOutputStream(), true);
out.print("helloet");
out.flush();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
message = in.readLine();
System.out.println(message);
socket.close();
}
}
您的服務器嘗試接收一條線路,但是您的客戶端從不發送一條線路。
沒有辦法解決此問題。 為什么? 因為我們無法判斷服務器嘗試接收線路是不正確還是客戶端不發送線路是不正確。 我們唯一可以說的是通過查閱協議規范來解釋服務器和客戶端如何交換數據。 而且沒有一個。 失敗。
請退后一步。 閱讀TCP之上的一些協議的規范,例如HTTP,IRC和SMTP。 然后,在開始編寫使用TCP的代碼之前,請花時間清楚地記錄您的協議。 這樣可以避免像這樣的錯誤,而其他許多嘗試使用TCP的人不可避免地會犯錯誤。
我知道這聽起來很痛苦。 但是請相信我,有數十種類似的錯誤正等着您做出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.