【发布时间】:2023-04-04 10:33:01
【问题描述】:
我有一个用 Java 编写的小型 Socket 服务器。我的应用程序基本上从 Socket 读取数据并将其写入输出。无论如何,当我尝试使用 readUTF() 函数从 Socket 读取数据时,它只会导致主线程等待,然后在第二个连接时给出 EOFException 但如果我使用 DataInputStream.readLine() 函数它正在工作。
我的代码readUTF():
private static PrintStream console = System.out;
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
ServerSocket serverSocket = new ServerSocket(5112);
console.println("Server Started !");
while(true){
console.println("Loop");
Socket client = serverSocket.accept();
console.println("Processing Request");
DataInputStream in = new DataInputStream(client.getInputStream());
console.println("Proccessing in");
console.println("Available : " + in.available());
console.println("Request Body : \n");
String str = in.readUTF(in);
console.println(str);
console.println("Waiting for new !");
}
}
输出是:
Server Started !
Loop
Processing Request
Proccessing in
Available : 0
Request Body :
【问题讨论】:
标签: java sockets serversocket datainputstream