Compact Framework连接到Web服务 - 如何使用源端口随机化

时间:2011-05-12 14:42:41

标签: sockets compact-framework firewall

Compact Framework 3.5
Windows CE 6.0 R3
基于Atmel的BSP

情境:来自单个网关的多个设备连接到防火墙后面的Web服务。所有设备都使用相同的IP和源端口启动连接。

问题:基本上新设备正在尝试连接到Web服务,防火墙认为它是现有连接,发送RST数据包。设备按顺序递增源端口,再次尝试。如果有100个设备,则行中有100个RST,这需要很长时间。 (见http://www.fuzeqna.com/sonicwallkb/consumer/kbdetail.asp?kbid=8013&formaction=catalert

根据文章,解决方案是随机化源端口。如何确定源端口以及如何设置它?我甚至不确定它在哪里(CE,CF,BSP)。


编辑:
找到了这个article about ServicePoint。 HttpWebRequest类上的ServicePoint看起来很有希望,但规范说:

  

Windows Mobile for Pocket PC,Windows   移动智能手机,Windows CE   平台注意:此属性为null   直到请求被发送为止   额外的网络传输   必需的。

1 个答案:

答案 0 :(得分:1)

好的,所以问题似乎出现在winsock.dll中。我们最终做了什么实例化Socket类并将它随机地绑定到Loopback端点。