我試圖測試客戶端/服務器教程示例提供by Oracle,並進行了一些小的調整。理想情況下,我會在我的客戶端中寫入「打印內容」到我的BufferedReader中,stdIn
,服務器在收到此字符串時會打印出「客戶端和服務器已連接!」。Java客戶端/服務器套接字程序 - 服務器沒有響應客戶端請求
我的代碼編譯,看起來連接成功。不過,我的服務器此時不打印任何內容。
以下是我的客戶端代碼:
public class myClient {
public static void main(String[] args) throws IOException {
String hostName = // my computer's local host name;
int portNumber = 4444;
try (
Socket clientSocket = new Socket(hostName, portNumber);
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
) {
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
// Tell server to print line "Client and server have connected!";
String fromServer;
String fromUser;
while ((fromServer = in.readLine()) != null) {
if (fromServer.equals("End"))
break;
fromUser = stdIn.readLine();
if (fromUser != null)
out.println(fromUser);
}
} catch (UnknownHostException e) {
System.err.println("Don't know host!");
System.exit(1);
} catch (IOException e) {
System.err.println("IO Exception caught!");
System.exit(1);
}
}
}
以下是我的服務器代碼:
public class myServer {
public static void main(String[] args) throws IOException {
int portNumber = 4444;
try (
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket clientSocket = serverSocket.accept();
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
) {
// if receieved string is "print stuff", print "Client and server have connected!";
String inputLine;
while ((inputLine = in.readLine()) != null) {
if (inputLine.equals("End"))
break;
// try to echo input stream - no output!
out.println(inputLine);
if (inputLine.equals("print stuff"))
out.println("Client and server have connected!");
}
} catch(IOException e) {
System.err.println("Exception caught while trying to listen to port!");
}
}
}
嘗試打印服務器從客戶端接收到控制檯的每一行。這應該使調試更容易。 – ruediste
@ruediste不知道爲什麼我沒有想到這一點 - 只是試了一下(並修改了我的代碼),沒有任何東西正在打印 – user2893128