如下:
struct packet{
unsigned char *packetdata;
int datalen;
int flag;
}PACKET;client端:
{PACKET m_packet;
m_packet.packetdata = (unsigned char*)malloc(1024);
if(NULL == m_packet)
{
perrror("allocate memory error...");
return;
}
m_packet.datalen = sizeof(hello the world");
memcpy(m_packet.packetdata, "hello the world", sizeof(hello the world"));
sendto(sfd, (char *)&packet, m_packet.datalen,...);
...
}当client和server不在一台机器上的时候,server收到的消息包中packetdata的内容还可以获取到吗?
对这种结构体中含有指针的,在socket中一般如何处理,请高手指教,谢谢!
struct packet{
unsigned char *packetdata;
int datalen;
int flag;
}PACKET;client端:
{PACKET m_packet;
m_packet.packetdata = (unsigned char*)malloc(1024);
if(NULL == m_packet)
{
perrror("allocate memory error...");
return;
}
m_packet.datalen = sizeof(hello the world");
memcpy(m_packet.packetdata, "hello the world", sizeof(hello the world"));
sendto(sfd, (char *)&packet, m_packet.datalen,...);
...
}当client和server不在一台机器上的时候,server收到的消息包中packetdata的内容还可以获取到吗?
对这种结构体中含有指针的,在socket中一般如何处理,请高手指教,谢谢!
解决方案 »
- 高手请进,我动态创建了多个button按钮,请问,怎么截获单击、双击、右击这个按钮的消息啊! 谢谢大侠了!
- VC6.0 中 CHtmlView 如何使用 OnNewWindow3 事件呢?
- 关于封闭式开发
- 请问如何实现VC6.0输出信息区下面那个类似TabCtrl的控件
- 文本文件的读取,/0,/n,换行符 endl都是什么意思?
- 给个连接 SQL SERVER 的例子
- 我在用VC通过ODBC操作Access数据库时出现被锁定问题。
- api hook的问题,带源码,高手请入,高分相送
- 求救!CButton 的SetIcon 设置图标后 图标被拉伸 很模糊
- MFC Ribbon 在功能区插入按钮问题
- PictureBox怎么动态创建?有CPictureBox?
- vc6下用gdiplus(gdi+)用Image,无论从IStream还是从文件中输入,都失败
不过我用过类似问题,那是在以前的项目上,中间传输用的是asn.1的码流,本地解开时结构体里有指针,但传输过程中显然是有那个指针指向的内容的。
unsigned char packetdata[1024];
int datalen;
int flag;
}PACKET;
呵呵~
要传数据向楼上定义的 传的是数据实体~~
小问题,不过 都是这样的,只要理解了 就行了,基础很重要,好好看看C++:)
#define MAXSIZE 1024
/* buffer的前四个字节存放数据的总长度,然后将结构体中的内容内存拷贝到buffer中,
接收端先收四个字节,然后根据这个长度去收后面的数据。这个是权宜之计,因udp不太可靠,最好加个校验和字段.
*/
unsigned char buffer[MAXSIZE];
unsigned int len = 0;
PACKET p;
对p的初始化处理...
len = sizeof(PACKET) + p.datalen -1;
memcpy(&buffer[0], &len, 4);
memcpy(&buffer[3], p.packetdata, p.datalen);
...