关于Socket限制IP连接的问题

Jim@luckeeinc.com 2006-04-04 12:56:12
写了段程序 当服务器没有启动的时候,客户端的ClientSocket会每隔3秒自动去尝试连接ServerSocket.
可是当Server启动了之后发现同一个客户端同一个IP居然和服务器建立了多个连接。
如果想限制同一个IP和服务器之间只能有一个连接,用什么方法好一点?
...全文
493 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jim@luckeeinc.com 2006-04-04
  • 打赏
  • 举报
回复
OK 我再试一下
3996906 2006-04-04
  • 打赏
  • 举报
回复
这个帖子更新速度真快

用closesocket之类的应该就可以。。。
3996906 2006-04-04
  • 打赏
  • 举报
回复
每个请求连接都有超时区的。。。3s显然比超时区做的短,只有超时了才真正放弃,所以有多个连接

自己做超时,到3s开始新请求的时候把以前的socket自己主动关闭掉没准也可以。。。
Jim@luckeeinc.com 2006-04-04
  • 打赏
  • 举报
回复
解决的方法是在每次连接后判断是不是连上了 如果没连上 就先close掉 再尝试连接
但是为什么会出现这样的现象?
3996906 2006-04-04
  • 打赏
  • 举报
回复
client连接的时候带自己的 标志id(可以是你自己分配的一个数字,或者其他方法生成),连接后服务器记录起来,以后来连接就查找一次

相当于做了次连接信息校验。。。能实现要求,可能需要修改连接请求时候的信息结构

判断ip的方法在局域网内可能有效,但是不能一个机器上开2个cilent。。。有点局限性

其他还有啥好主意就想不起来了
Jim@luckeeinc.com 2006-04-04
  • 打赏
  • 举报
回复
不是发现已经连上服务器它还继续连这个问题 是没连上服务器一直在发送连接的请求,可是当服务器开启的时候居然出现了多个连接。
alloutoflove 2006-04-04
  • 打赏
  • 举报
回复
一方面从客户端下手, 客户端发现已经连接到服务器就不要再死皮赖脸地连接服务器了.
第二方面从服务端下手, 发现有死皮赖脸连着不做什么事的连接就close掉^_^

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧