好的,我正在做一些看起來應該很容易的事情。我基本上試圖打開一個ServerSocket連接,然後等待客戶端連接。如何在我的android應用程序中打開一個ServerSocket?
這是我的代碼。
ServerSocket serverSocket = new ServerSocket(6543);
Socket clientSocket = serverSocket.accept();
每當我的代碼命中,serverSocket.accept();,我拋出以下異常。
bind failed: EADDRINUSE (Address already in use)
所以很明顯,我的下一步是檢查,看看另一個端口是否會工作,它沒有。接下來,我重新啓動設備,並嘗試運行應用程序,我得到了同樣的例外。我已經給了我的應用程序INTERNET許可,並且該設備已根植。
這裏是我的網絡接口,顯示出來。
lo: ::1%1
lo: 127.0.0.1
eth0: //IPV6 address
eth0: 192.168.1.127
編輯1
這裏是ServerSocket對象信息進行調試時,我得到的。
ServerSocket[addr=192.168.1.121/192.168.1.121,port=0,localport=1234]
EDIT 2
,我有以下可用的構造函數在我的ServerSocket
new ServerSocket(int port)
new ServerSocket(int port, int backlog)
new ServerSocket(int port, int backlog, InetAddress localAddress)
我用3號構造和同樣的異常嘗試。
new ServerSocket(4567, 0, InetAddress.getLocalHost());
對,讓我知道它是怎麼回事! –
是的,我沒有在那裏的文件,也轉身,並在手機和模擬器上測試了這一點,我收到了同樣的例外。 – meanbunny
如果你刪除serverSocket.accept()是否有效? –