今日网络编程问题总结
2007-11-02 20:14
253 查看
1、使用strlen对2进制流操作
典型错误: ret = send(sServer, file_buff, (int)strlen(file_buff), 0);错误分析:由于是读的是2进制文件,中间很有可能出现/0,所以用 strlen(file_buff)求缓冲区长度很容易出错,另外,使用sizeof也不行,因为
sizeof返回的是file_buff此字符数组的数组长度,因此可能出现多发送数据的情况
解决办法: 计算欲发送缓冲的长度,直接赋值
典型错误: ret = send(sServer, file_buff, (int)strlen(file_buff), 0);错误分析:由于是读的是2进制文件,中间很有可能出现/0,所以用 strlen(file_buff)求缓冲区长度很容易出错,另外,使用sizeof也不行,因为
sizeof返回的是file_buff此字符数组的数组长度,因此可能出现多发送数据的情况
解决办法: 计算欲发送缓冲的长度,直接赋值