gpt4 book ai didi

java - 如何监听端口上传入的数据包?

转载 作者:行者123 更新时间:2023-12-02 00:19:16 29 4
gpt4 key购买 nike

我想监听端口 19132 上传入的数据包并在它们到来时将其打印出来,但到目前为止我的代码根本没有打印任何内容。有一台服务器通过端口 19132 将数据包转发到我的计算机,并且该端口已打开并启用,但仍然没有任何打印。

public static void listenToPort(){
try{
ServerSocket serverSocket = new ServerSocket(19132);
Socket socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true){
try{
System.out.println(in.readLine());
}
catch(IOException e){
System.out.println("Connection to server lost!");
System.exit(1);
break;
}
}
}
catch(IOException e){
System.out.println(e.getMessage());
}
}

服务器端正在发送信息,但客户端程序(此脚本)没有收到任何信息,这是什么问题?

最佳答案

您正在读取行,而不是“数据包”。如果发送到此端口的数据不包含换行符,则 readLine() 将永远阻塞,或者直到对等方关闭连接。

另一方面,当它确实读取某些内容或EOS时,您的代码将永远旋转打印null,因为您没有检查readLine( ) 返回 null,此时您必须关闭套接字并退出循环。

关于java - 如何监听端口上传入的数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355043/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com