UDP侦听会不会导致网络阻塞?

JLDelphi 2006-08-14 10:56:50
udp服务器,侦听端口1234,有n台客户机向服务器机发送数据,客户机发送数据的频率为每秒4次。
客户机发送数据的数据结构如下:
typedef struct{
INT32U Number;// 数据包序号
DATAAigisData; // 数据结构
} UdpAigis;

其中:1、Number为数据包产生的时间顺序。32Bit值,溢出归零
2、结构体DATA定义为:
typedef struct{
INT16S v1;
INT16S v2;
INT16S TOCO;
INT16S Level1;
INT16S Level2;
INT16S Event;
INT16SZero;
INT16S Act;
} DATA;
这样服务器会不会出现问题,应该如何解决?
是不是服务器要针对不同客户机侦听不同端口,服务器没一个侦听启动一个线程,这样做最多可以侦多少台客户机?
...全文
112 点赞 收藏 4
写回复
4 条回复
贵子潘 2006年08月20日
服务器端一定要bind的,不然怎么知道发往哪个端口?

lz不必担心那么多,侦听一个端口就够了
如果处理数据过长的话,建议用线程池
回复 点赞
nuaawenlin 2006年08月20日
如果是阻塞的套接字

recv会阻塞的
回复 点赞
moloto2004 2006年08月19日
UDP还是可以bind的
回复 点赞
yebeans 2006年08月14日
UDP的话貌似不用侦听的吧~
无连接的可以在一个端口对多台机器收发信息,不过接受的时候数据量过大而来不及处理的话可能导致缓冲区满而无法接收数据。主要是程序里面的处理技巧。

有连接的也只是在本地记录了远程地址,还是不可靠的。
为每个建立线程应该用不着~
回复 点赞
发动态
发帖子
网络编程
创建于2007-09-28

7878

社区成员

6.4w+

社区内容

VC/MFC 网络编程
社区公告
暂无公告