socket编程问题,请帮忙!

hjdaifool 2003-08-21 03:45:14
我想建立一个基于UDP的socket服务器(支持多用户),如果我计划最多10个用户可以同时发送数据到我的server,在服务器端我是否需要同时建立10个线程,每个线程需要调用recvfrom函数接收来自同一个端口的数据?



...全文
69 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicolas2001 2003-08-29
  • 打赏
  • 举报
回复
能不能这样:用udp来传输数据,再增加一个tcp的连接来监视用户,用一个链表来保存客户端的信息!每当有一个客户端来到时,先让他和tcp连接,然后将客户端信息存入链表中;然后开始使用udp来收发数据,这期间就用tcp的timeout来监视客户端的状态;客户端推出后,将链表中信息删除即可!
nicolas2001 2003-08-28
  • 打赏
  • 举报
回复
用不了每个用户一个线程,用一个主线程,把udp射程非阻塞的就行了。但是,如何限制用户的数量,我想还是需要你自己来控制的。
用一个计数器?来一个用户(判断其ip和端口号)加一,可是走了一个用户呢?我们如何来判断用户走了没有??凭借closesocket函数吗?
joinrry 2003-08-22
  • 打赏
  • 举报
回复
UDP就是一个Socket

farfh 2003-08-22
  • 打赏
  • 举报
回复
楼主以前多半没做过UDP的程序吧?
zhouyong0371 2003-08-22
  • 打赏
  • 举报
回复
只需要一个socket,因为UDP是无连接的,只管接受。
mme 2003-08-21
  • 打赏
  • 举报
回复
用一个线程侦听,根据收到的不同请求,生成不同的线程去处理.具体我已经实现了.
nicolas2001 2003-08-21
  • 打赏
  • 举报
回复
up
feeboby 2003-08-21
  • 打赏
  • 举报
回复
使用udp的话,只使用一个socket就足够了,没有必要开多个线程
AaronChan 2003-08-21
  • 打赏
  • 举报
回复
啊!不好意思没看清楚楼主要UDP的哈!
AaronChan 2003-08-21
  • 打赏
  • 举报
回复
我觉得还是开个线程监听好点!
farfh 2003-08-21
  • 打赏
  • 举报
回复
up
孤必有邻 2003-08-21
  • 打赏
  • 举报
回复
在服务端只需要一个SOCKET调用recvfrom,函数的参数会返回当前客户端的IP(和PORT),你可以在调用recvfrom的线程中处理请求,如果处理时间比较长的话,这样就不好了(影响界面刷新、延迟响应速度),在recvfrom之后,尽快再次调用,以便响应其他客户端的请求。

18,355

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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