[英]Socket does not receive any data
我在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,但是它給了我相同的結果。 我也沒有任何過人之處。
我的AndroidManifest.xml中具有以下權限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
readLine()
阻塞,直到在底層緩沖區中接收到整行(以\\r\\n
或\\n
終止readLine()
為止(或者已經達到蒸汽的末尾)。 因此,除非您的服務器使用換行符終止數據,否則您的程序將不會打印任何內容。 當套接字超時時,異常除外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.