Socket tcp通信,多线程实现的高级问题
基于socket的tcp通信服务器程序,该程序用于GPS车辆监控系统的数据传输。
定位信息传输通过udp实现,这个没问题。
现在设置,控制命令需要通过tcp通道来发送确保车台终端能正确,及时响应。
s.Bind(ipe);
s.Listen(5);
while (true)
{
socket temp = s.Accept();
........
}
s.Accept();在接受到车台终端的连接后会返回一个新的socket temp来建立与该车台的通信通道
我现在的思路是,为每一个新的连接socket temp,都开辟一个线程来维护该终端的数据收发。
但是,如果有50个终端同时连接就要创建50个线程,如果更多呢,这样应该会有问题吧。这个问题有什么好的解决
办法,。一般,同时几十个连接时是怎么进行维护的。
请知道朋友提供个设计思路。
还有个小问题,连接断开怎么进行判断。
[解决办法]
异步就好了。
同步量一大是不现实的。
[解决办法]
通信大全参考
[解决办法]
如果有50个终端同时连接就要创建50个线程,如果更多呢,这样应该会有问题吧。这个问题有什么好的解决
别说50,就是500也行,效率问题不用担心,普通的单核电脑都能抗上百的连接...
最好使用多线程模式,其他模式的,我还没有使用过,不好评价.
[解决办法]
去看看IOCP的内容,这个是少量线程应付多连接
[解决办法]
代码太简洁,有点不太明白
[解决办法]
再弄个线程池。
[解决办法]
同步的。数据收时创建,发完数据就销毁并不影响你连接啊?只处理并发数据
不知道这样能不能减少你的线程数。。。
[解决办法]