社区
网络编程
帖子详情
udp接收的问题
gohappy_1999
2005-12-06 10:25:48
如果UDP服务器调用RecvFrom(s, buff, 100, ...)接收客户端数据,而这是多个客户端同时向服务器发送50个字节的数据包,问服务器调用一次RecvFrom()会不会收到数据包长度等于100的情况,而这个数据包中的数据分别来源于不同的客户端?
...全文
238
5
打赏
收藏
udp接收的问题
如果UDP服务器调用RecvFrom(s, buff, 100, ...)接收客户端数据,而这是多个客户端同时向服务器发送50个字节的数据包,问服务器调用一次RecvFrom()会不会收到数据包长度等于100的情况,而这个数据包中的数据分别来源于不同的客户端?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vicky_jam
2005-12-07
打赏
举报
回复
汗~
理解错了,我以为你说的一个客户端是指一个IP 汗~
唉~ 被人鄙视了,郁闷~
gohappy_1999
2005-12-06
打赏
举报
回复
天使亲蛙:
假如可以的话,那怎么去判断这个包是由哪些客户端发送包的组合,按你的方法应该是
没法判断的。
hjun:
谢谢
hjunxu
2005-12-06
打赏
举报
回复
recvfrom可以收tcp包和udp包,
如果是tcp包,不同的客户端发有不同的socket,当然不会有不同客户端数据在一起的情况,只可能是同一个客户端,分批发送的数据一起受到。
如果是udp,不论如何一个报文就是一个报文。
hjunxu
2005-12-06
打赏
举报
回复
udp是基于报文的,发50,就只收50。
vicky_jam
2005-12-06
打赏
举报
回复
首先:当然可能
"服务器调用一次RecvFrom()会不会收到数据包长度等于100的情况,而这个数据包中的数据分别来源于不同的客户端"
但是: 你可以区分是那个客户端发给你的,所以还有什么问题么~?
char Buff[256];
SOCKADDR_IN Client_sa;
DWORD nAddrSize = sizeof(SOCKADDR_IN);
int nRecvCount = 0;
nRecvCount = recvfrom(hSocket,Buff,256,0,(sockaddr *)(&Client_sa),&nAddrSize);
if(nRecvCount == SOCKET_ERROR)
printf("recvfrom() error code is:%d.\n",WSAGetLastError());
else
{
printf("%s client send is:\n",inet_ntoa(Client_sa.sin_addr));
printf("%s\n",Buff);
}
windows下
UDP
组播(多播)发送和
接收
程序
一个简单的C++实现
UDP
组播发送和
接收
的程序
C#的Socket实现
UDP
协议通信
C#的Socket实现
UDP
协议通信 CSharp
解决
UDP
接收
不到数据
问题
UDP
接收
不到数据
TCP/
UDP
丢包常见
问题
小结 增加
udp
缓存
困扰几天的
udp
内网传输部分终于做通了,解决的关键就在于setsockopt的调用,设置
接收
缓冲。 遇到的
问题
是这样的,主机端发送
udp
数据包: 应用层的包大小为1452byte大小,这样拆包是根据以太网的MTU为1500字节而...
WINDOWS下的
UDP
接收
程序
WINDOWS下的
UDP
接收
程序 WINDOWS环境下socket的创建过程与LINUX环境下有所差异,在此记录一下,
UDP
接收
程序基本代码如下: #include <winsock2.h> int main() { unsigned short int
udp
_recv_buf[10]={0}...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章