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

关于多线程socket

2012-03-21 
求助 关于多线程socket要求进行的处理是服务器接受客户端的消息,解析消息,然后将对应的消息发送给客户端,

求助 关于多线程socket
要求进行的处理是服务器接受客户端的消息,解析消息,然后将对应的消息发送给客户端,这三个处理对应三个线程。如果要多个客户端与服务器端连接的话,服务器端要怎么设置?是对应每个客户端创建对应的三个线程,接受和发送数据的buffer怎么分配?

[解决办法]
作两个队列,
队列A 存储待解析消息
队列B 存储待发送消息
你可以根据数据量来决定增加还是不增加新线程,比如你定义一个规则,队列中只能有5个消息排队,则当队列A中超过5个消息时你再new出一个新的消息解析线程,当无排队消息时你可让此线程消亡,
消息发送队列也是类似;
没有必要强制每个客户端必须启动三个线程,很浪费资源的。
至于内存的分配,可系统启动时即分配一组内存栈,对内存进行压入、取出操作,当消息增多时,适当增大此内存栈即可。注意对内存的适时收回
[解决办法]
消息结构体定义啊,去简单学习一个任意的通讯协议,比如tcp,udp,你在你的消息头中带一个SourceIP不就ok了么?
想不到你会问这个问题,呵呵

热点排行
Bad Request.