Android Java ServerSocket端口号不是它应该的

嗨,我正在进行android开发,并在使用套接字API时发现了一些奇怪的东西。

在我创建的套接字之间

ServerSocket server = new ServerSocket(4444); Socket client = server.accept(); 

 client.getPort(); 

不是4444。

由于端口号几乎是随机的,因此客户端无法与服务器应用程序通信。 任何信息或建议都会有所帮助!

完整的示例项目在这里。

http://vext.eclipselabs.org.codespot.com/files/SocketTest.zip

提前致谢!

引自Head First Java

在此处输入图像描述

当客户端套接字到服务器套接字时,它将在客户端机器上采用随机空端口(未使用的端口)..但是此客户端应该连接到具有服务器的特定端口…

指定服务器套接字端口时; 你正在听这个港口。 并且在接受新的套接字连接时,您应该为连接的客户端创建一个特定的引用,并继续监听传入的新连接; 然后使用此引用与客户端连接进行通信。

来自Java Docs of Socket类 public int getPort()返回此套接字连接的远程端口。 返回:此套接字连接的远程端口号,如果尚未连接套接字,则返回0。

尝试调用getLocalPort()