分享这个报错的一个可能原因。
今天也是写这个tcp/ip聊天程序,遇到了这个报错:
java.io.DataInputStream.readUTF(Unknown Source)
这是client端代码:
public class Client {
public static void main(String[] args) {
Socket serverSocket = null;
try {
serverSocket = new Socket("127.0.0.1", 8888);
System.out.println("connected");
SendMessageThread sendMessageThread = new SendMessageThread(serverSocket);
RevMessageThread revMessageThread = new RevMessageThread(serverSocket);
sendMessageThread.start();
revMessageThread.start();
} catch (IOException e) {
e.printStackTrace();
}
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
调试了好一会,最后发现是不小心,在client的main函数连接成功后,把serverSocket给close了,把close的语句删除即可:
public class Client {
public static void main(String[] args) {
Socket serverSocket = null;
try {
serverSocket = new Socket("127.0.0.1", 8888);
System.out.println("connected");
SendMessageThread sendMessageThread = new SendMessageThread(serverSocket);
RevMessageThread revMessageThread = new RevMessageThread(serverSocket);
sendMessageThread.start();
revMessageThread.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}