项目需要开发一个服务端程序,用到多线程处理UDP通信。
通信的过程是这样的,通信节点:车载GPS终端,网络中心,现在要开发的服务端程序,web控制端。
车载GPS终端,网络中心之间的通信我不管(由终端设备提供方的服务器程序维护,网络中心作为我的服务端和车载GPS终端之间的桥梁)
现在我要开发的服务端要处理web控制端对车载GPS终端控制指令的数据包,和车载GPS终端发送给我的数据包的接收、解析(判断是何种指令),发送响应指令车载GPS终端(这里假设上百台),要是同时进行数据传输,数据量比较大。我的服务端要尽量保证不丢包(不要说用TCP,这里连接不是固定的),而且在处理的性能上尽可能做到最好。多线程应如何设计???以前没有过多线程的经验。请大家帮我分析分析。。给点意见!分不是问题,不够加!

解决方案 »

  1.   

    每个线程针对一个客户端建立连接,UDP的话,可以自己增加发送请求返回等,服务端接收到了,就发送一个响应信息,如果没有返回就重发...
      

  2.   

    如果自己增加发送请求返回,而且我这里的数据接收都要保证他时间上的顺序。这样会不会对性能优影响。需要缓存首次接收数据的内容和时间。。我最关心的是UDP下的多线程怎么设计,(比如要开辟多少线程,分别处理什么。怎么样对这些线程进行合理的管理),来保证性能????
      

  3.   

    UDP 上位机与下位机通信。 通常有一定的UDP协议。
    多线程要那样用???不需要吧。多开一个线程。目的用于监听端口而已。因为监听的时候是会阻塞的。
    UDP 通信是有可能丢包的,所以下位机设计的数据包是有验证码的。就是用来检查是否有数据丢失。而且下位机设计的是循环发送的。即不止发送一次。
      

  4.   

    这个很强大
    http://topic.csdn.net/u/20080623/08/4bbd2475-45f1-42e3-a613-16b094759ade.html
      

  5.   

    開一個UDP接受數據的線成
    用于實時接受數據,對數據逕行處理!