UDP通讯 服务器端设计问题 ( 积分: 100 )

  • 主题发起人 主题发起人 liu22xiao
  • 开始时间 开始时间
L

liu22xiao

Unregistered / Unconfirmed
GUEST, unregistred user!
服务器与客户端采用UDP通讯,如果多个客户端同时发送数据包给服务器端,服务器端怎么处理?
另外默认创建的udp是阻塞的,多用户同时发送感觉会丢包?这个又如何解决呢?
现在一般的采用UDP通信的服务器端是如何设计的?请高手给我一些思路及参考的资料
 
看到不少关于完成端口的代码,但好象是用于tcp通讯的,不知道udp通讯适不适用,高手请指导下,谢谢了
 
看到不少关于完成端口的代码,但好象是用于tcp通讯的,不知道udp通讯适不适用,高手请指导下,谢谢了
 
晕倒,一个线程接受,扔到缓冲区,另外一个线程处理。
多简单,搞什么完成端口,就一个端口就ok了
 
udp有完成端口的,但好像大多数高人不建议用!你去国外的站点搜下,应该有的,至于设计,我是不太懂的,因为我确实没作过,所以不好乱说的
 
是不是要改变udp通讯的模式?就是阻塞变非阻塞,不然大量数据同时进来会丢
 
还有就是每个客户端登陆服务器干不同的事,那是不是必须得为每个登陆服务器的用户创建一个线程?可爱小猪有qq吗,留下我qq向你请教,这样好麻烦
 
IdUDPServer.ThreadEvent := True;
这样就都是线程形式处理的了。
 
不太懂zqw0117说的,我没有用控件.
 
udp是广播协议,好像不应该出现你说的问题啊.一个线程接收,抛给另一个线程,好像是不需要完成端口的.最近也在写,不过用vc的.好累.
 
关键问题是创建udp默认是阻塞的,当大量数据包同时到达时不是会丢包么,是不是要修改udp为非阻塞然后没个用户一个线程来完成相关操作?
 
高手帮帮忙
 
学QQ做法,如果点对点,那就两边开多个端口,
如果服务器对下面很多设备或客户端,就在服务器上开一个端口对应一个客户端
或设备,这样就方便了,管你阻不阻塞哦!遇到容量问题,多开服务器!就这样解决!
握手连接登录,使用同一端口,
来自:可爱小猪, 时间:2007-8-15 14:34:40, ID:3823310
晕倒,一个线程接受,扔到缓冲区,另外一个线程处理。
这样处理登录,然后就按上面所说,开个端口对于该客户端,方便的很。
 
多人接受答案了。
 
后退
顶部