windows mobile (ce) udp socket 的端口问题

Un1 2008-12-03 09:39:25
使用 bind 到特定端口后发现 ce 不能收到发往该端口的数据, 用Ethereal抓包后发现报错误端口不可用。调用sendto后也发现实际使用的端口不是bind到的端口号。


问题:如何得到实际的本地端口号? 谢谢!

...全文
179 点赞 收藏 7
写回复
7 条回复
comey 2010年11月10日
搞定了吗?
回复 点赞
Un1 2008年12月04日
多谢楼上不过我就是要用udp的。。。
回复 点赞
zhyuanshan 2008年12月04日
用Tcp/IP先和PC上的服务器建立连接,再传输,肯定不会有问题
回复 点赞
北方大冬瓜 2008年12月03日
程序写的有问题?
回复 点赞
Un1 2008年12月03日
特定端口到是不需要,实际上我是调用bind到0端口由系统自动分配的端口,关键是bind成功后调用getsockname出来的端口并不是正确的端口,目前的步骤是这样的:

1:bind
2: getsockname得到当前绑定的端口,然后通过其他连接告诉对端端口号。
3:对方向该端口发送数据,成功。
4:但在ce上收不到数据,抓包看是由于该端口未取用,包被丢弃了。

如果bind后向外发送一个包,然后抓包看到source port,对端向这个port发送就可以收到数据,真是郁闷啊。同样的代码在 windows 上跑没有任何问题。



回复 点赞
beyondma 2008年12月03日
很奇怪啊,你是能过SYNC连到设备上再由PC端的Ethereal抓得包吗?那样的端口是不对的吧。
回复 点赞
zhyuanshan 2008年12月03日
楼主要用PDA做服务器吗?为什么要绑定到特定端口呢?自动分配就成吗?
回复 点赞
发动态
发帖子
Windows客户端开发
创建于2007-08-27

6823

社区成员

1.8w+

社区内容

Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区公告
暂无公告