我有一臺運行作爲接入點(又名WiFi熱點)的Android設備,它是運行此代碼:的Android的ServerSocket接受作爲WiFi熱點
serverSocket = new ServerSocket(serverPort);
serverSocket.setReuseAddress(true);
while (RUNNING) {
try {
final Socket socket = serverSocket.accept();
我也會有一些其他客戶端設備連接到這設備的wifi熱點,並嘗試連接到套接字,它將無法。
接入點的IP地址類似於192.168.43.1 ...所以我會嘗試從客戶端設備連接到192.168.43.1:8080,它不會工作。
但是,如果兩個設備都連接到另一個wifi網絡,serverSocket.accept();將工作得很好!我正在使用端口8080.
我需要告訴服務器套接字在接口「ap0」上接受嗎? (我能做到嗎?) 它是Android設備上的防火牆問題?
任何解決方案/想法/建議表示讚賞!
編輯:
我改變了端口8988和現在的作品就好了! ... 它可能是一個防火牆問題? 任何想法如何導航這個問題?
,我改變了端口從8080到8988,現在它的工作原理。現在我想知道如何在80端口上工作! =) – ChrisVollo 2014-11-20 20:45:18
@ 1024以下的ChrisVollo端口是爲系統保留的。你爲什麼需要80端口? – 5er 2014-11-20 21:05:53
找到了解決方案。我更改了iptbles以將端口80上的所有流量重定向到端口8080。 – ChrisVollo 2014-11-20 21:23:20