Có ai có thể giúp tôi gỡ lỗi chương trình này không?Sự cố trong Chương trình TCP (Java)
Sau đây là mã máy chủ:
package networking;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
class TcpServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(5555);
while (true) {
Socket client = serverSocket.accept();
Scanner reader = new Scanner(client.getInputStream());
PrintWriter writer = new PrintWriter(client.getOutputStream());
String inputString = reader.nextLine();
System.out.println("Received from client : " + inputString);
writer.write(inputString.toUpperCase());
client.close();
}
}
}
Và đây là mã khách hàng:
package networking;
import java.io.PrintWriter;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
class TcpClient {
public static void main(String[] args) throws IOException {
Socket client = new Socket("localhost", 5555);
PrintWriter writer = new PrintWriter(client.getOutputStream());
Scanner reader=new Scanner(client.getInputStream());
writer.println("oPen SOurCe RUleS !");
System.out.println("Received from server : "+reader.nextLine());
client.close();
}
}
Vấn đề là khi tôi chạy chương trình này cả khách hàng & máy chủ đi vào trạng thái chờ đợi vô thời hạn. Bất cứ ai có thể cho tôi biết có gì sai với mã này?
Cảm ơn trước!
Mã đúng không? . . . Việc nhập khẩu đường nối TcpClient bị sai lệch: không được nhập 'PrintWriter' và không được sử dụng' DataOutputStream'. . . . Dù sao tôi đề nghị không sử dụng PrintWriter vì nó KHÔNG ném ngoại lệ, bạn phải kiểm tra lỗi gọi là 'checkError'. IMHO chỉ tốt cho việc đăng nhập. –
@Carlos: Cảm ơn bạn đã chỉ ra! Tôi đã sửa nó ngay bây giờ! :) – missingfaktor
@Carlos: Tôi nên sử dụng gì thay cho PrintWriter? – missingfaktor