socket编程里recv函数接收不了0x00,但是同学的就可以,是为什么啊??

我和同学一个写服务器,一个写客户端,可是他的客户端的recv函数可以接收我发的0x00,而我就接受不到他发的。都是用charbuffer={0x00,0x01},直接用s... 我和同学一个写服务器,一个写客户端,可是他的客户端的recv函数可以接收我发的0x00,而我就接受不到他发的。都是用char buffer = {0x00,0x01},直接用send发送的,但是我就是读不到数据,这是为什么啊?? 展开
 我来答
wanglixin1001
2015-08-19 · TA获得超过4174个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:879万
展开全部
int send( SOCKET s, const char FAR *buf, int len, int flags );
该函数的第一个参数指定发送端套接字描述符;
第二个参数指明一个存放应用程序要发送数据的缓冲区;
第三个参数指明实际要发送的数据的字节数;
第四个参数一般置0。
不知道您的send函数调用怎么写的。
试试
char buf[2] = {0x00, 0x01};
send(s, buf, sizeof(buf), 0);
更多追问追答
追问
同学是这样发的char buf[64];     buf[0] = 0x00;    buf[1] = 0x01; send(s, buf, 2, 0);跟你的是一样的吧,就是读不到数据,0x00之后的都读不到了,是不是因为0x00代表结束符啊,但是我同学的客户端却确确实实读到了我发的0x00,太郁闷了
追答
你的recv怎么写的?
ret = recv(s, buf, 10, 0); 这里的ret是实际读取的字节数。按照上面的应该是2。
请检查该返回值是否正确。
如果你直接recv然后打印buf就会看不到,因为第一个是\0(0x00)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式