您的位置:首页 > 理论基础 > 计算机网络

TCP客户端和服务器多个socket连接的问题求助

2016-01-06 23:07 621 查看
刚接到一项目,要做一个TCP客户端代理,该代理工作在linux平台上,与服务器最多时有接近1000条tcp连接,并定时发送心跳包以维持TCP连接不中断。现在要求服务器的技术实现不能有任何改动。只能在TCP客户代理上做文章。

目前想了两个方案,如下所示:

1. 在一个进程中通过for循环等方式建立这1000条tcp连接,并采用轮询或select的方式实现其他细节,如心跳包和响应等;

2. 为每一个TCP连接建立一个线程。

方案1,我写了一个简单TCP服务器和客户端程序尝试过,1000条tcp连接通信似乎没有问题,速度也能接受,但总觉得这个方案不够好。

方案2,我认为是理想的方案,但如果真是1000个客户,就要建立1000个线程,这显然也不太合适,开销也巨大。

有没有哪位大侠有更好的方案,在此谢过!
------------------------------------------------------------------------------------

1. 启动一个心跳检查线程负责心跳检查

2. 开启几个业务线程池, 负责处理业务处理转发。

3. 主线程采用poll模式轮询,同时负责数据分发调度到不同线程;

仅供参考。

FROM: http://bbs.chinaunix.net/thread-4140216-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: