udp只能收发带字符数组的结构体吗?带字符指针的结构体可以收发吗??

weixin_49587713 2020-12-04 02:25:34
如题:
struct data
{
char a[100];//字符数组
char *b;//字符指针
};
这个结构可以收发吗???
只要带字符指针,我接收的时候,就出现存取错误。发送的时候没有显示错误。为什么字符指针得不到正确数据。
struct data buffer;
buffer.b=(char*)malloc(sizeof(char)*100);

recvfrom(sServer,(char *)&buffer,sizeof(struct data),0,......
sendto(sServer,(char *)&buffer,sizeof(struct data),0,......

收发带字符指针的结构体,怎么作,可以写个简单例子吗?我的服务器老报错。0xC0000005: Access Violation.
...全文
525 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
UDX协议 2021-12-05
  • 打赏
  • 举报
回复

测试回复。

美丽海洋 2021-02-05
  • 打赏
  • 举报
回复
struct data
{
char a[100];//字符数组
char *b;//字符指针
};


假如发送这个结构体你发送的长度是多少,b指定的地址是什么,接受端根本不知道
heraldww 2021-01-21
  • 打赏
  • 举报
回复
老板,udp 和 tcp都可以发任意的二进制数据。。。。。
进击的菠萝 2021-01-11
  • 打赏
  • 举报
回复
buffer结构体占用的内存是100个char + 1个char*, 你用malloc出的新内存和buffer已经不在一个地方了 要用malloc的内存就要传入buffer.b recvfrom(sServer,buffer.b,100,0,...... sendto(sServer,buffer.b,100,0,......
sevancheng 2021-01-08
  • 打赏
  • 举报
回复
发的是指针指向的内存数据和数据的长度,数据要根据业务自己处理
an_bachelor 2021-01-05
  • 打赏
  • 举报
回复
跨进程有不同的虚拟地址空间,你可以用MIDL语言定义这个结构,通过COM调用是可以正常在进程间和机器之间传送的,midl.exe帮你生成的代理、存根会帮你在两端打包和重建堆栈
gz_qmc 2021-01-04
  • 打赏
  • 举报
回复
发送和接收, 操作的是连续的空间
你丫的,malloc出来的那个东西就是个肿瘤,知道吗?
那东西是个独立存在
结构体只是通过buffer.b把它连起来,当然不能操作

比如,你要把包裹发给你朋友
为了方便你是不是想装箱(结构体)
箱子尺寸是不是定好的?
然后总有个东西你要临时去买(malloc)
你觉得那个纸箱比人都牛B会自己变形来适应大小吗?

所以,buffer里的b不是定义成char *
而是一开始就要定义好大小 char b[100]
一条晚起的虫 2021-01-04
  • 打赏
  • 举报
回复
// 字符指针指向的内存位置,在两个进程中都不一样,更别说在两台机子上了。 // 发送这个字符指针和接收这个字符指针没有问题,它们也就是一串二进制,但是实际意义就没有了。
xian_wwq 2021-01-03
  • 打赏
  • 举报
回复
udp就认byte[], 需要传的内容转换为byte[]就好了
fly4free 2020-12-09
  • 打赏
  • 举报
回复
指针指向的只当前进程内存空间的 虚拟地址。
接收端的 那个地址可能已被他用,或者未用,总之到了接收端,就变成了野指针。

发送数据的时候,必须序列化,接收端反序列化,这样成对出现。
worldy 2020-12-09
  • 打赏
  • 举报
回复
发送字符指针是无用的,因为接收方接收到指针,但在接收方,指针指向的位置并没有内容
Eleven 2020-12-07
  • 打赏
  • 举报
回复
你想想你对应的接收方怎么去解析结构体里的指针变量,很可能指针指向的是非法的地址
zgl7903 2020-12-04
  • 打赏
  • 举报
回复
通讯中只能发送实体 , 可以按 “长度,数据” 这样的方式把字符串指针转换为实际的数据

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧