用winAPI写的,服务器、客户端全部采用异步选择模式 客户端想用固定端口连接服务器,客户端套接字创建后设置SO_ReuseAddr为true,然后bind,connect 客户端主动断开连接后,服务器接收到消息,同时把服务器的套接字也关闭 但客户端再次连接时仍然报10048错误,地址已使用 客户端断开连接后,的确套接字处于time_wait状态,但使用SO_ReuseAddr后,并不像资料上说明的可以再连接嘛
注明:
客户端、服务器运行在同一机器上,采用127。0。0。1
服务端如果设置SO_ReuseAddr后,断开监听套接字,再在同一地址上连接到是可以
这个问题搞了两天还是不行,求高手解答
注明:
客户端、服务器运行在同一机器上,采用127。0。0。1
服务端如果设置SO_ReuseAddr后,断开监听套接字,再在同一地址上连接到是可以
这个问题搞了两天还是不行,求高手解答
解决方案 »
- 再问个关于Delphi 操作 Excel问题 关于用Delphi设置Excel单元格数据格式
- 当 Image 组件中有图片时再用CopyRect复制图片到上面时变色,怎么解决呢?
- !求助:ADO删除时报错,可能很简单。。。
- 弱弱的问题,关于数据类型定义
- 求一sql语句,另外有一小怪题不知是否为bde本身的问题还是我哪里搞错了?
- 2个窗体的问题
- 关于中文朗读
- 三层结构中服务端dll文件中为何增加多个datasetprovider出错?
- 启动Database Desktop时,显示无法初始化BDE是怎么回事?而且连接数据库也连不上,怎么办?
- 得到了机器里面所有的进程的ProcessID,我想关掉里面的某一个,应该怎么作了?不要告诉我用sendmessage,呵呵:)
- 给大家推荐个免费空间@_@
- DBGrideh中PickList属性设置的下拉列表
那SO_Linger的这个linger属性值又是什么意思,难道只能设置是否拖延,不能指定拖延时间?
客户端每隔一段时间(小于time_wati的拖延时间,4分钟)向服务器发送一次数据,然后主动断开,如果是自动选择端口,那一段时间后端口用完会报错,必须使用固定端口号,怎么实现呢?
我也用了 setsockopt 来指定端口可重用但是总是返回错误
如果什么都不设置,由服务器端主动断开连接,则客户端重连能够成功
所以SO_ReuseAddr只能用以解决TIme_Wait状态下问题,但由不能破坏5个因素达成的唯一性,实在搞不懂该怎么用