簡體   English   中英

為什么我不能創建從 Android 設備到 PC 的 tcp 套接字

[英]Why can not I create tcp socket from Android device to PC

我正在嘗試將我的 Android 應用程序連接到桌面服務器。 問題是當我嘗試通過智能手機上的便攜式 Wi-Fi 熱點創建 LAN 時一切正常,但是當我將 PC 和手機連接到路由器時,我有 TimeOutException 在 Android 應用程序中創建一個套接字。 另一方面,當我通過路由器將桌面客戶端連接到桌面服務器時,它也可以正常工作,所以只有當我嘗試通過路由器將移動客戶端連接到桌面服務器時才會出現問題。

客戶端代碼(Java):

Socket socket = new Socket();
socket.connect(new InetSocketAddress(ip, port), 1000); // TimeOutException

服務器代碼(C++/Qt):

QTcpServer m_tcp_server;
// ...
m_tcp_server->listen(QHostAddress::Any, m_port);

ip地址和端口正確(100%)

升級版:

感謝你們。

這只是一個路由器的問題。 我在另一個上測試了,沒有問題

嘗試檢查您在 android pohone 上分配的 ip 以及是否有到目標服務器 ip 的路由。

是否可能您在 wifi 上獲得不同的 ip,通過電纜獲得不同的 ip。

您也可以嘗試使用 android net 工具嘗試連接到服務器。

我有同樣的問題,在我的情況下,我創建了錯誤的 IP 地址的服務器套接字。 熱點網絡頻段為192.168.43.1~255

您需要使用熱點 dhcp 制作的 IP 地址創建服務器套接字,例如 192.168.43.11

我錯誤地使用 ip 192.168.0.22 創建了服務器套接字,這是錯誤的。

你的 android 應用程序應該用它打開客戶端套接字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM