您好我正在进行android开发,并在使用套接字API时发现了一些奇怪的东西。
我从
创建的套接字之间ServerSocket server = new ServerSocket(4444);
Socket client = server.accept();
和
client.getPort();
不是4444。
由于端口号几乎是随机的,因此客户端无法与服务器应用程序通信。 任何信息或建议都会有所帮助!
完整的示例项目就在这里。
http://vext.eclipselabs.org.codespot.com/files/SocketTest.zip
提前致谢!
答案 0 :(得分:5)
引自 Head First Java :
答案 1 :(得分:0)
当客户端套接字到服务器套接字时,它将在客户端计算机上采用随机空端口(未使用的端口)..但是此客户端应该连接到具有服务器的特定端口...
指定服务器套接字端口时;你正在听这个港口。并且在接受新的套接字连接时,您应该为连接的客户端创建一个特定的引用,并继续监听传入的新连接;然后使用此引用与客户端连接进行通信。
答案 2 :(得分:0)
public int getPort() 返回此套接字连接的远程端口。 返回: 此套接字连接的远程端口号,如果尚未连接套接字,则为0。
尝试调用getLocalPort()