用socket的send发送一个自定义类的问题
用socket的send发送一个自定义类,类大概如下:
class msg
{
public:
int length;
char data[100];
......
}
length是发送字符数组的长度
输入的字符用strcopy给data能发送和接收,缺点是data是固定大小的。
我想让data的大小随发送字符的多少而变化,尝试根据length大小用new进行分配,然后strcopy,不能成功,我想原因是data此时只是指向堆的指针,请问要实现我的想法,有没有其他的方法?
------解决方案--------------------用new进行分配, msg 的各成员要分别发送
class MSG
{
public:
int length;
char p_data;
......
};
MSG msg;
int len;
msg.p_data = new data [n];
len = htonl(msg.length);
send(sockfd, &len, sizeof(len));
send(sockfd, data, n);
........
------解决方案--------------------楼上的方法已经很简明了