社区
网络编程
帖子详情
udp的通讯问题
zss1103
2006-10-10 09:54:02
请问大家,我现在用udp进行通讯,是用CSocket写的。有两个结构体需要发送,结构体1五秒发送一次,结构体2一秒发送一次,接收的时候怎样才能区分接收的是结构体1还是结构体2呢?
...全文
172
6
打赏
收藏
udp的通讯问题
请问大家,我现在用udp进行通讯,是用CSocket写的。有两个结构体需要发送,结构体1五秒发送一次,结构体2一秒发送一次,接收的时候怎样才能区分接收的是结构体1还是结构体2呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
star119119
2006-10-12
打赏
举报
回复
the same to f_acme(沧海一声笑)
huaqingci
2006-10-11
打赏
举报
回复
通过接收到的数据的大小也可以判断,但是这样不太好,你可以这样,发送构建数据包的时候,在第一位设一个判断位就可以了
如下
struct s1
{
//...
}
struct s2
{
//...
}
int size = sizeof(s1或者s2);
char *p = new char[size+1];
p[0] = 0;//0 == s1 1= s2;
memcpy(p[1],s1或s2,size);
sendto(socket,p,size+1);
接收端
if(p[0]== 0)
s1 *tmp = (s1*)&p[1];
else
s2 *tmp = (s2*)&p[1];
f_acme
2006-10-11
打赏
举报
回复
enmu TYPE
{
TYPE1,
TYPE2
}
struct s1
{
//...
}
struct s2
{
//...
}
struct Message
{
TYPE type;//TYPE1 or TYPE2
union _message
{
s1 m1;
s2 m2;
}message;
}
发送Message的结构体,利用type来区分s1还s2,消息内容放在联合体内
zss1103
2006-10-10
打赏
举报
回复
能不能给段代码看看?
life_good
2006-10-10
打赏
举报
回复
可以考虑构建一个通用结构.里面用一个标志位区分两种结构.
(不过如果两个结构大小不一样的话,可能造成浪费)
tonyzhengjq
2006-10-10
打赏
举报
回复
结构用标示ID来区分
易语言源码易语言翻译类源码
易语言源码易语言翻译类源码
易语言源码易语言分类资源管理器源码
易语言源码易语言分类资源管理器源码
docker.1ms.run-vllm-vllm-openai-v0.23.0.tar.7z.002
1
网络编程
18,356
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章