Java 套接字不接收任何数据
我在Android Studio中有一台C#服务器和这个Java客户端:Java 套接字不接收任何数据,java,android,android-studio,network-programming,Java,Android,Android Studio,Network Programming,我在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.getInputStr
@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,但它给出了相同的结果。我也没有任何例外
我在我的AndroidManifest.xml中拥有以下权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
readLine()
阻塞,直到在底层缓冲区中接收到完整的行(以\r\n
或\n
终止)(或到达蒸汽末端)。因此,除非服务器使用换行符终止数据,否则程序不会打印任何内容。除了套接字超时时的异常情况。readLine()
阻塞,直到在底层缓冲区中接收到一个完整的行(由\r\n
或\n
终止)(或到达蒸汽末端)。因此,除非服务器使用换行符终止数据,否则程序不会打印任何内容。当然,除了套接字超时时的异常情况。您的android代码没有收到任何消息???“它给了我相同的结果”-结果是什么?服务器是否在消息末尾添加了新行(\n
)?您的android代码没有收到任何消息???“它给了我相同的结果”-结果是什么?服务器是否在邮件末尾添加了新行(\n
)?谢谢!现在它工作得很好,从来没有想过。修改服务器发送的内容通常是错误的。您也可以在不等待换行符的情况下从套接字读取。谢谢!现在它工作得很好,从来没有想过。修改服务器发送的内容通常是错误的。您也可以在不等待换行符的情况下读取套接字。