socket 的 sendto 使用中的问题
我使用sendto发送一个 char buffer[4]={0x31,0x82,0x00,0x76};
数据发送到0x00就截止了后面的0x76就发不出去,我想可能是sendto把0x00当/0处理了
请问如何才能把0x00发出去?
我将buffer的char类型变为int,结果什么都发不出去了。。。。
帮帮我,谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
是 楼上的大哥.
应该是的,strlen遇到/0生效
用char 型 sizeof 可以发出去了
版主能简单点拨一下原理么?
是不是strlen 包括了结尾字符?
我刚接触C不久 谢谢了
为啥要变成int型??
将buffer的char类型变为int,然后用sizeof(buffer)?
我去试试 谢谢
ssize_t sendto(int s, const void *buf, size_t len, int flags, const
struct sockaddr *to, socklen_t tolen);
第3个参数你用的strlen吗?
换成sizeof