只用数组还是还要用多线程?

ring 2000-05-27 04:42:00
一个基于tcp的服务器,要将各客户端的socket连接都存起来
我用了一个数组,将连接时new出来的socket一个个存了起来
还有必要用多线程吗?(在每次连接时new一个线程)
如果不用的话,数组里面各个元素与各自客户端的通讯会造成什么干扰吗?
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
royluo 2000-05-27
  • 打赏
  • 举报
回复
用链表好过数组
关于是否用多线程
关键看你自己的应用了。
你想使用Winsock 1.x还是2.x
还是直接使用MFC封装的CAsyncSocket还是CSocket
较简单的方法是使用CAsyncSocket
它内部使用的是Winsock 1.1
可以在Windows平台(95/98/NT/2000)下实现很好的兼容性
而且你也不用自己去编写多线程应用了
>如果不用的话,数组里面各个元素与各自客户端的通讯会造成什么干扰吗?
不用多线程,数组里面各个元素与各自客户端的通讯不会造成干扰的
zhangclong 2000-05-27
  • 打赏
  • 举报
回复
如你的程序只是一个不大的应用,我觉得还是用new的方法.如你以前没有编写多线程的经验的话,用多线程会给编程带来一些麻烦的。
另外我建议你看一下Chatter和chatter server这个个例子, 这是个很经典的winsocket编程的例子,你只要在MSDN中键入Chatter关键字就可以找到这个例子.
还有你用数组保存每个用户不是太好,我建议你用CPtrList这个链表类或模板链表类. 你可以看Chatter这个例子中是如何做的.
superbat 2000-05-27
  • 打赏
  • 举报
回复
最好用多线程,难道把所有连接都放到主线程里?,还有你的数组,你难道知道要连接的客户端个数?
最好用动态数组,用Cobjectlist和CObjectArray.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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