x_xy
驱动牛犊
驱动牛犊
  • 注册日期2002-07-09
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1360回复:0

wince下IP端口重用的问题

楼主#
更多 发布于:2003-07-11 10:25
我用winsock写的PDA下的程序,它通过无线网卡和一台PC Server连接。
我首先创建一个socket,设置(setsockopt))它为可以REUSEADDR,又设置了它可以被强制切断(即设置LINGER,其中onfff为1,time为0),然后bind一个本地地址,connect Server后,执行一些操作,然后我打算停止这个连接,于是closesocket。
这时候我的程序并没有关闭,而是重新执行上述操作,即socket->bind->connect,但是执行到connect的时候,就出现10048的错误(通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次。 )
于是我加上了WSACleanup,没有作用,我甚至在WSAStartup之前加上了WSACleanup,先清除再建立winsock环境,情况依旧。
而且,Client如果是PC的话一切正常,但是如果是PDA的话,就会出错,除非我等待一段时间,或者关闭程序再打开才会正常。
请问LINGER在PDA上无效吗?有什么解决办法吗?
还有,10048的错误不是应该在bind的时候就出现的吗?为什么要一直等到connect才提示出错,是因为我设置了地址可以重用,所以bind没出错,connect才出错吗?
我的server端倒是没有使用LINGER来强制切断,只是closesocket罢了,这点有问题吗?需要两端都用LINGER来强制切断吗?
请高手指点!
游客

返回顶部