当前位置: 代码迷 >> Android >> Android 使用getsockname获取到的本地端口不正确?该怎么处理
  详细解决方案

Android 使用getsockname获取到的本地端口不正确?该怎么处理

热度:94   发布时间:2016-05-01 22:15:42.0
Android 使用getsockname获取到的本地端口不正确?!
采用jni方式,使用Bsd socket,创建UdpSocket,并bind端口为零后,使用getsockname获取Android内核分配的本地端口,用于与服务器协商端口进行数据发送,协商端口成功,但是实际使用该Socket发送数据时,从抓包的数据来看,Socket随机又分配了一个端口来进行数据发送,并未使用获取到的端口,比如,我通过getsockname获取到的端口是58990,并用这个端口与服务方协商以获得服务方的接收端口,但是发送数据时,客户端却使用了48876或其他任意可用端口,但是同样的代码在PC上执行却完全正确,获取到什么端口就使用什么端口,求教各位,难道手机(Android和Iphone手机上执行结果一样)和PC在端口分配上有那么大的差别吗?应该怎样获得正确的端口号?

------解决方案--------------------
实现不同,android.iphone 都是linux 和unix 这两者关系你应该了解。而你说的pc应该是windows吧
  相关解决方案