好的,我正在做一些看起来应该很容易的事情。我基本上试图打开一个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()是否有效? –