首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于线程的有关问题,求教

2012-03-14 
关于线程的问题,求教小弟想做一个聊天室,服务器端的线程问题不是很明白。要求是想用TCP协议先来确定与客户

关于线程的问题,求教
小弟想做一个聊天室,服务器端的线程问题不是很明白。
要求是想用TCP协议先来确定与客户端连接成功,然后再用UDP来收发数据。
先说说自己的两种思路:

1.服务器端需要一个线程监听客户端的连接请求。连接成功后另创建一个线程使用UDP协议来接收信息,当然,客户端发来的信息也是使用UDP协议。发送数据使用主线程。
这种理解的话,那就是说每个用户连接成功后,服务器都得为之创建一个接收消息的线程。这样可以吗?

2.服务器端同样需要一个线程监听客户端的连接请求,连接成功后只创建一个线程用于接收所有用户发来的消息,发送数据也是使用主线程。

由于对线程方面的知识了解的不太多,所以还请各位大大指教。或许这两种思路都不对,麻烦高手说下觉得合理的思路,先谢谢咯!!

[解决办法]
一般都用第一个,如果客户端要求支持很多,据就用线程池等来提升更高性能
[解决办法]
性能方面不要求过高的话,用第一个就可以了。lz可以先找些demo例子看看。这样总体有个感觉,或者找些多线控制方面的书籍看看,windows核心编程,或者win32位多线程程序设计。


[解决办法]
如果客户端不多的可以,你可以多线程的方式,一个线程维护一个客户端的连接,可以连接并发不较大的话,多线程就存在线程膨胀的问题的,可以考虑使用非阻塞IO模型,select,WSAAsyncSelect/WSAEventSelect,OVERLAPPED IO和IOCP,其中IOCP是性能是最高的,可扩张性也是最好的
[解决办法]
用线程池吧
如果客户端经常连接和断开的话,线程的创建和撤销会影响性能
 最好用IOCP,这样的话,会很方便

热点排行