添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
爽快的冲锋衣  ·  使用 Oracle JDeveloper ...·  2 年前    · 
纯真的炒饭  ·  Part of Speech ...·  2 年前    · 
没有腹肌的围巾  ·  MySQL ...·  3 年前    · 

可在发送数据的地方对数据进行处理,将其转换成一个字符串进行传送,而在接受方定义相同的结构体对这个字符串进行解析即可。

发送方代码如下:

char temp[100];    //传送的字符串

struct person p1; //声明一个需要传送的结构体

//以下是结构体的初始化信息

p1.age = 10;

p1.high = 1.80f;

strcpy(p1.name,"zhangsan",sizeof(p1.name));

memset(temp,0,sizeof(temp));  //对该内存段进行清

memcpy(temp,&p1,sizeof(person));  //把这个结构体中的信息从内存中读入到字符串temp中

//接下来传送temp这个字符串就可以了

sendto(sock,temp,sizeof(person),0,(SOCKADDR*)&addSer,sizeof(SOCKADDR));
//这样这个结构体的信息就发送到addSer相应的套接字了

接收方代码如下:

同样需要定义字符串和相同的结构体对象

char temp[100];    //传送的字符串

struct person p2; //声明一个存放接收信息的结构体

memset(temp,0,sizeof(temp)); //清内存

//下面是接收字符串的代码

recv(clientSocket,temp,101,0);

//下面对字符串信息进行还原,将其变成我们的结构体数据

memcpy(&p2,temp,sizeof(person));  //解析过程,将字符串的内容写入到p2所在内存完成解析

下面就可以对p2中的数据进行各种操作了,也完成了结构体数据的传送。

2. Json序列化

很显然上面若是很复杂,结构体是不能够搞定的!Json序列化是一个好的东西。

从原理上来讲就是你在传递你的数据的时候。按照Json数据的key告诉他数据的类型,按照Json的value告诉数据的值。就这样,于是乎就可以传过去了。

C++需要一个jsoncpp的文件。具体的操作Google吧!

3.定义一个class

这是我今天上午发现的,原来定义一个类,再将它指针操作就可以发过去了。这种方法真是太帅了!

让我也想到,第一种方法也可以取地址发过去吧!!!

具体思路可以参考我的博客——https://blog.csdn.net/new_one_object/article/details/51787002 https://blog.csdn.net/new_one_object/article/details/51787035 https://blog.csdn.net/new_one_object/article/details/51787057 具备的功能: (1)聊天室服务器端能够接收多个客户端的连接请求 (2)聊天室服务器端具有处理“公聊”和“私聊”的功能;“公聊”所有客户端可见,私聊只有指定的“客户”可见 (3)聊天室客户端具有登陆对话框,通过输入用户名与服务器IP地址登陆到聊天室服务器端 (4)能够和聊天室的任何在线客户聊天,收发聊天信息,根据需要可以选择“公聊”或“私聊” 程序基于Visual Studio2010开发,以“MFC应用程序”作为程序开发模板。 原标题: Socket 通信原理一、 Socket 通信简介Android与服务器的通信方式主要有两 :Http通信 Socket 通信两者的最大差异在于:Http连接使用的是“请求-响应方式”,即在请求时建立连接通道,当客户端向服务器 发送 请求后,服务端才能向客户端返回 数据 Socket 通信则是在双方建立连接后,可以直接进行 数据 传输 ,在连接时可实现信息的主动推送,而不需要每次由客户端向服务器 发送 请求。那么,... 这个程序使用的是多线程机制+缓冲机制。 服务端会创建一个子线程来对应一个客户端,这样就可以实现多个客户端同时在线,客户端会有一个队列,用于循环读取的文件的缓冲机制。 这个程序默认是把接受的文件放在当前目录下的。 假设我们让 发送 数据 的一端总是以大端字节序 发送 (对就是做一个统一的规定),那么接收 数据 的一端就知道我接受到的字节序总是大端字节序,如果接受方的字节序为小端,那么只需要大端 数据 装换成小端字节序就可以了。因此,Linux定义了下面这个新的通用的 socket 地址结构体,这个结构体不仅提供了足够大的空间用于存放地址值,而且是 内存 对齐的【 内存 对齐可以加快CPU访问速度, 内存 对齐问题见我的C语言专栏,有详细介绍】 socket 本意上“插座”的意思,在Linux环境中,用于表示进程间网络通信的特殊文件 类型 。... 软件平台:win7  &  VC6++     初学网络 编程 ,经验也非常有限,项目要求我 传输 一个很大的bits流封装好的 数据 包,然而,我们用tcp协议的时候,其 传输 函数send函数的第二个参数是要一个char* 指针。那么怎么 传输 int* 或者 double*的数组怎么传过去呢。     其实很简单,send函数在传 数据 的时候,的确是一个字节一个字节的 传输 。那么我们把int*强制转换,       c/ c++ 通过 socket 发送 结构可以直接先将结构转化到 内存 中,再通过send直接 发送 。   在网络通讯过程中往往涉及一些有关联的参数传递,例如数组,结构体之类的。对于结构体其实 方法 挺简单,由于结构体对象在 内存 中分配的空间都是连续的,所以可以将整个结构体直接转化成字符串 发送 ,到了接收方再将这个字符串还原成结构体就大功告成了。  首先,我们建立一个结构体。  stru   在上一篇中我们介绍了Winsock的初始化 方法 ,本文将介绍使用Winsock进行面向连接的一般 编程 方式。文中会给出 C++ 和对应的C#代码。 Error控制   网络 编程 中对错误进行控制是非常重要的,因为你不知道什么时候会出现网络错误(如物理掉线、拥塞等,事实上它们经常出现,不用担心多数情况下的异常可以忽略不计,仍然可以在该套接字上进行通讯)。如果调用一个Winsock函数发生了错误,可以通... 套接字,就是一个指向 传输 提供者的句柄。Wi n 3 2中,套接字 不同 于文件描述符,所以它是一个独立的 类型 —S O C K E T。套接字是由两个函数建立的: SOCKET WSA Socket (int af,int type,int protocal,LPWSAPROTOCOL_INFO lpProtocolInfor,GROUP g,DWORD dwFlags); SOCKET sock 1. 什么是 socket socket 的原意是“插座”,在计算机通信领域, socket 被翻译为“套接字”,它是计算机之间进行通信的一 约定或一 方式。通过 socket 约定,一台计算机可以接收其他计算机的 数据 ,也可以向其他计算机 发送 数据 。 1.1 UNIX/Linux 中的 socket 是什么? 在 UNIX/Linux 系统中,为了统一对各 硬件的操作,简化接口, 不同 的硬件设备也都被看成一个文件。对这些文件的操作,等同于对磁盘上普通文件的操作。