首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

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

2012-03-22 
Android 使用getsockname获取到的本地端口不正确?!采用jni方式,使用Bsd socket,创建UdpSocket,并bind端口

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

[解决办法]
实现不同,android.iphone 都是linux 和unix 这两者关系你应该了解。而你说的pc应该是windows吧

热点排行