套接字接收后的 Memcpy 不起作用

TStriker

我试图通过 TCP 套接字发送一个结构数组,方法是将它作为字节数组(char*)发送,然后在接收端将其转换回原始结构类型。

该结构包含照片的数据,如下所示:

struct photo{    //List that will store photo information
  uint32_t id_photo;
  char *file_name;
  struct keyword * key_head;
  struct photo * next;
};

然后我像这样发送它:

photolist p_list[photocount];//Photo count = nº of elements to be sent
for(int i = 0; i<photocount; i++){
    p_list[i]=*aux;
    p_list[i].key_head = NULL;
    aux = aux->next;
}
//Sending list of photos to the new peer
buff = malloc(sizeof(photolist)*photocount);
memcpy(buff, p_list, sizeof(photolist)*photocount);
nbytes = send(fd, buff, sizeof(photolist)*photocount, 0);

最后我像这样收到它(数组的元素数量之前已成功接收):

 buff = (char *) malloc(sizeof(photolist)*photosize);
    nbytes = recv(sock_fd_server, buff, sizeof(photolist)*photosize, 0);
    if(nbytes == -1){
      perror("Reciving");
      exit(-1);
    }
    photolist testlist[photosize];
    memcpy(testlist, buff, sizeof(photolist)*photosize);

但是,当我在收到结构元素后尝试打印它时,会发生分段错误。我在发送之前和接收之后打印了缓冲区,只是为了查看数据是否相同,并且确实如此,所以我不知道我做错了什么。任何帮助将不胜感激,并提前致谢!

普拉斯

您还没有提供 photolist 的定义但是如果您要发送类似的结构

struct photo{    //List that will store photo information
  uint32_t id_photo;
  char *file_name;
  struct keyword * key_head;
  struct photo * next;
};

从客户端到服务器并file_name在服务器上访问它不会工作,因为 file_name 包含来自客户端程序的地址它在服务器程序中无效

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python异步套接字接收不起作用

来自分类Dev

首次连接后Python UDP套接字不起作用

来自分类Dev

套接字超时不起作用

来自分类Dev

套接字编程不起作用

来自分类Dev

套接字超时不起作用

来自分类Dev

Java套接字超时不起作用

来自分类Dev

JAVA-使用套接字和线程接收对象不起作用

来自分类Dev

Memcpy在C低级程序中不起作用

来自分类Dev

Memcpy在C低级程序中不起作用

来自分类Dev

简单的字符串复制,但 memcpy 不起作用

来自分类Dev

Tcp套接字在生成{error,closed}后在erlang中的远程节点上不起作用?

来自分类Dev

Android中的多线程服务器套接字,可从连接的客户端接收图像-不起作用

来自分类Dev

套接字连接的单例类不起作用

来自分类Dev

Python套接字在主机和VM之间不起作用

来自分类Dev

套接字获取HTML响应不起作用

来自分类Dev

PHP / Java套接字通信不起作用

来自分类Dev

亚行套接字不起作用和守护进程

来自分类Dev

Spark Streaming套接字流示例不起作用

来自分类Dev

示例套接字应用程序不起作用

来自分类Dev

Boost套接字读取功能不起作用

来自分类Dev

在Store App中创建套接字连接不起作用

来自分类Dev

Python套接字在主机和VM之间不起作用

来自分类Dev

套接字获取HTML响应不起作用

来自分类Dev

Android套接字客户端readUTF不起作用

来自分类Dev

从线程调用时,Python 套接字 accept() 不起作用

来自分类Dev

在套接字上设置超时不起作用

来自分类Dev

阻塞 TCP 套接字超时不起作用

来自分类Dev

从客户端接收 JSON 后,Res 不起作用

来自分类Dev

为什么 memcpy 在这个 set<int> 数组情况下不起作用?

Related 相关文章

热门标签

归档