似乎没必要创建多个socket吧
UDP是基于报文的,因此,不同客户端发来的包是不会混在一起的
如果要提高效率,可以先把收到的报文放进队列,由另一个(或多个)线程来处理
TCP是面向连接的,因此必须有不同的socket对象来识别远程客户端
还是socket编程问题,UDP多线程接收
我在用UDP传输数据,一个服务器端、多个客户端,客户端发送数据不定时,长度不固定,有可能同时有多个客户端在像服务器端发送数据,server接收到数据后需要对数据进行处理,这个耗时有点长,可不可以设计成,服务器端接收到udp包后就新建一个线程对接收到的数据进行处理,然后同时又开始接收新的数据?
或者调用recv方法接收端收到数据后,,将包接收后存入一个缓冲区,然后迅速返回继续recv。
这个存入缓冲区怎么实现呢?最好附一下这个缓冲区设计操纵的代码,
------解决方案--------------------------------------------------------
可以采用多线程
------解决方案--------------------------------------------------------
服务端设计成多线程,一个接收线程,一个处理线程,(也可以多个处理线程,看CPU数),采用production&consumer模式建立。这样处理最快
同时其他模块也设计成独立