UDP发送的数据可以包含0吗?
我用C++Builder2010的IdUDP控件发送数据,发送一个字符串:
TBytes MsgStr;
String s = {1,2,3,0,4,5,6};
s.SetLength(8);
MsgStr = s.BytesOf();
IdUDPClient1->SendBuffer(ip, port, MsgStr);
貌似s[3]这个0值会使得MsgStr截断,但是我确实又要发送0值(数据文件里有0),怎么办?
[解决办法]
自己都找到问题了,呵呵
直接定义为数组吧
char ch[8]={1,2,3,0,4,5,6};
[解决办法]
发送与接收肯定都是可以的。
[解决办法]
不知道你的indy是哪个版本,下面代码给你参考一下,顺手写的,没测试过
char ch[8]={1,2,3,0,4,5,6};
TByteDynArray aa;
aa=RawToBytes(ch,8);
IdUDPClient1->SendBuffer(aa);
[解决办法]
既然你要发送含0的数据,用byte数组比较科学。
[解决办法]
SendBuf(LPVOID pBuff,int count);
其中pBuff是一块缓冲区,根据count发送该缓冲区多少内容
[解决办法]
用二进制方式发送mem数据