首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

UDP协议中的sendto函数只能发送字符串啊那小弟我如何发送16进制数啊

2012-06-01 
UDP协议中的sendto函数只能发送字符串啊,那我怎么发送16进制数啊?UDP协议中的sendto函数只能发送字符串啊,

UDP协议中的sendto函数只能发送字符串啊,那我怎么发送16进制数啊?
UDP协议中的sendto函数只能发送字符串啊,我怎么发送16进制的无符号整数啊?而且数据接收端接到的也是无符号整数??

[解决办法]
原型是:
ssize_t sendto (int __fd, __const void *__buf, size_t __n,
int __flags, __CONST_SOCKADDR_ARG __addr,
socklen_t __addr_len);
buff是你要传递的内容,直接使用unsigned char *类型就可以
[解决办法]
你的sendto的原型是什么样的?如果buf是void*,那你传任何类型的指针都是可以的,你只要传你这个变量的地址就可以了:
short myInt = ??;
senddo(.., &myInt, sizeof(short), ...);

如果是char*,强制转换一下就可以了,我觉得你的函数不会把它作为字符串来处理,应该是作为字节串来处理的,所以出现'\0'也没关系。
short myInt = ??;
senddo(.., (char*)&myInt, sizeof(short), ...);

接收端也一样,强制转换成short就可以了。

热点排行