我正在做對嗎?當我嘗試在我的計算機環回地址上運行此操作時,出現「連接重置」錯誤。使用Java進行網絡編程
public class DateTimeClient {
public static void main(String[] args) throws IOException {
int port = Integer.parseInt(args[0]);
String host = args[1];
try {
System.out.println("Connecting....\n");
Socket socket = new Socket(host, port);
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
BufferedReader reader = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
System.out.println("Date: " + reader.read());
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class DateTimeServer {
public static void main(String[] args) {
int portNum = Integer.parseInt(args[0]);
try {
ServerSocket socket = new ServerSocket(portNum);
Socket client = socket.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(
client.getInputStream()));
PrintWriter writer = new PrintWriter(client.getOutputStream());
Date date = new Date();
writer.print(date.toString());
} catch(Exception e) {
e.printStackTrace();
}
}
}
我搶端口上運行,該端口連接到服務器和主機的主要方法的參數,創建套接字和使用的BufferedReader和PrintWriter的。我非常仔細地跟蹤了Oracle的教程,所以我不確定我在哪裏犯了一個錯誤。
爲什麼你的'PrintWriter writer'在服務器中使用不同的構造函數進行初始化,而不是客戶端中使用的構造函數? – Pshemo