我正试图自己实现客户端 - 服务器应用程序。目前为止,除了事实上,当我通过另一个应用程序(例如Web浏览器)访问端口时,服务器应用程序被阻止。Java Socket等待UTF8
如果连接应用程序是“客户端应用程序”,是否有任何简单的方法/好的实践来检查?
下面是侦听端口8080的套接字的简单示例。套接字等待2个字符串。如果您现在连接浏览器(localhost:8080),则连接建立,但正在等待第一个UTF8。
public class MainSocket {
public static void main(String[] args) {
ServerSocket serverSocket;
try {
serverSocket = new ServerSocket(8080);
while (true) {
try {
Socket clientSocket = serverSocket.accept();
System.out.println("Connection established");
DataInputStream in = new DataInputStream(clientSocket.getInputStream());
System.out.println(in.readUTF());
System.out.println(in.readUTF());
in.close();
clientSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
DataInputStream是专为读*二进制*数据,而不是文本。我建议使用许多Reader实现之一来阅读文本。 –