gpt4 book ai didi

java - 套接字未接收到任何数据

转载 作者:行者123 更新时间:2023-12-01 21:43:27 25 4
gpt4 key购买 nike

我在 Android Studio 中有一个 C# 服务器和这个 Java 客户端:

@Override
public void run() {

try {
Socket socket = new Socket("192.168.0.107", 7778);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));

while (true) {
currentMessage = inFromServer.readLine();
System.out.println(currentMessage);

Thread.sleep(200);
}
}
catch(Exception e) {
System.out.print("Error: " + e.toString() + "\n");
}
}

我已经使用 Telnet 测试了服务器,并且消息按应有的方式发出,所以我几乎可以肯定,问题出在客户端代码中的某个地方。我还尝试使用 DataInputStream 而不是 BufferedReader,但它给了我相同的结果。而且我没有得到任何异常(exception)。

我的 AndroidManifest.xml 中有这些权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

最佳答案

readLine() 会阻塞,直到底层接收到整行(以 \r\n\n 终止)缓冲区(或已到达 Steam 末端)。因此,除非您的服务器以换行符终止数据,否则您的程序将不会打印任何内容。当然,除了套接字超时时的异常之外。

关于java - 套接字未接收到任何数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36204620/

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