用线程控制多条socket链接

Ice_Peach 2016-05-13 02:34:52
新人,刚接触线程和tcp/ip的程序,现在有20条链接,如何用线程来捕捉这20条链接是否连接上
或者当前的链接超时就跳过进行下条链接
...全文
160 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ice_Peach 2016-05-13
  • 打赏
  • 举报
回复
引用 7 楼 ot512csdn 的回复:
用HP-SOCKET组件吧,很轻松就实现了服务器socket, 我就是这样
感谢提供组件,我先去看看了解下
刘欣的博客 2016-05-13
  • 打赏
  • 举报
回复
用HP-SOCKET组件吧,很轻松就实现了服务器socket, 我就是这样
Ice_Peach 2016-05-13
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
什么“跳过进行下条链接”这种话,都是匪夷所思的。因为出发点不对,所以你的思路在你自己的想象出来的那个泥潭里打滚。
大神出现了,先膜拜下 因为我对线程和socket程序不太了解,所以自己的理解可能有误,希望大神见谅 突然被要求做一个20条socket链接的程序有点懵哔,完全不知道该怎么下手,我程序中就写了 public IPEndPoint server = new IPEndPoint (IPAddress.Parse("192.168.0.101"), 20101); public Socket sock1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 这样的20条链接,然后程序一运行就卡死了。。。 而且如果这其中20条链接有一条没有连接上我程序直接报错...
xdashewan 2016-05-13
  • 打赏
  • 举报
回复
引用 2 楼 Ice_Peach 的回复:
请问如何判断物理性断网,然后再重连呢
前一次接受发送是否正常可以用Socket.Connected来判断,现在是否断开,只能靠实际收发
  • 打赏
  • 举报
回复
什么“跳过进行下条链接”这种话,都是匪夷所思的。因为出发点不对,所以你的思路在你自己的想象出来的那个泥潭里打滚。
  • 打赏
  • 举报
回复
引用 楼主 Ice_Peach 的回复:
新人,刚接触线程和tcp/ip的程序,现在有20条链接,如何用线程来捕捉这20条链接是否连接上 或者当前的链接超时就跳过进行下条链接
socket 运行时就是一个数据对象,它的connected属性可以告诉你最近一次操作是不是连接状态。这跟“线程”没有半点关系。 不要滥用“线程”这个词儿。你一说“.....条线程”就知道你在滥用它了。如果你觉得某进程有10000客户端访问服务器,就有10001条/只线程在那里死循环地轮询着,那么你的这个东西将成为 windos 系统里的一个灾难进程。 有10000个客户端实时连接服务器,要处理其与服务器并发消息收发,要并发di返回信息,在系统中可能最高10几个线程就够了。 每当接收到某个sokcet客户端请求,系统 i/o 线程会异步回调你的过程,然后你接收了信息之后可以通过.net系统线程池来使用一个线程去解析命令、执行命令、返回结果。这整个过程不过10几毫秒就结束了(就不在占用任何线程了),也不存在什么“死循环、阻塞”代码。
Ice_Peach 2016-05-13
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
20个client链接只要能保持住20个socket链接,具体处理才需要线程,即使不用线程仅使用socket异步事件也能实现。网上例子很多,自己看多一下
请问如何判断物理性断网,然后再重连呢
xdashewan 2016-05-13
  • 打赏
  • 举报
回复
20个client链接只要能保持住20个socket链接,具体处理才需要线程,即使不用线程仅使用socket异步事件也能实现。网上例子很多,自己看多一下

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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