永发信息网

我在用到recv()这个函数时,里面的第二个参数是char型变量的,值的范围在-127到+127之间,

答案:4  悬赏:70  手机版
解决时间 2021-12-23 21:33
如果我要装一个大于127的数据在里面怎么办??
最佳答案
楼主你好。
既然参数是char类型,那么这个参数的大小就固定为1个字节,这一个字节能存储的数据只能有-128到+127。
除非你改变recv这个的第二个参数的类型,否则不可能输入大于127的数据,即使输入大于127的数据,也会被截取为一个字节的数据。
全部回答
m/m/
如果recv是自定义函数,可以改变char类型为int类型,这样既不妨碍你使用负数部分,也能兼容你现在的要求。
int recv( SOCKET s, char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。 该函数的第一个参数指定接收端套接字描述符; 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据; 第三个参数指明buf的长度; 第四个参数一般置0。 这里只描述同步Socket的recv函数的执行流程。当应用程序调用recv函数时,recv先等待s的发送缓冲中的数据被协议传送完毕, 如果协议在传送s的发送缓冲中的数据时出现网络错误,那么recv函数返回SOCKET_ERROR,如果s的发送缓冲中没有数据或者数据 被协议成功发送完毕后,recv先检查套接字s的接收缓冲区,如果s接收缓冲区中没有数据或者协议正在接收数据,那么recv就一直 等待,直到协议把数据接收完毕。当协议把数据接收完毕,recv函数就把s的接收缓冲中的数据copy到buf中(注意协议接收到的数据 可能大于buf的长度,所以在这种情况下要调用几次recv函数才能把s的接收缓冲中的数据copy完。recv函数仅仅是copy数据,真正的 接收数据是协议来完成的),recv函数返回其实际copy的字节数。如果recv在copy时出错,那么它返回SOCKET_ERROR;如果recv函数在等待协议接收数据时网络中断了,那么它返回0。 注意:在Unix系统下,如果recv函数在等待协议接收数据时网络断开了,那么调用recv的进程会接收到一个SIGPIPE信号,进程对该信号的默认处理是进程终止。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
公司偷税,对法人有影响吗
My uncle to see me. He'll be here soon.A.
送路是什么意思
男23岁,2016年考的C1驾照,我想去开公交车,
win10系统盘盘符怎么显示出来
申请实用新型专利时,权利要求书能这样提吗?
检查脸上有铅汞、用什么可以去掉
单选题汉代晁错在他的《论贵粟疏》中写道:“
地质考察员需要做哪些工作
台球中的"斯诺克"是什么意思?
年丰社区居委会地址在什么地方?想过去办事
在重庆新华电脑学校毕业了可以分到工作吗?工
zowieza和ce系列鼠标哪个好
查湾社区居委会在什么地方啊,我要处理点事
p|easehaveaty!翻译中文
推荐资讯
为什么接收不到百度外卖发来的语音通话
Ten years ago, with only about 1, 000 pand
解答题读下列材料:1861年2月19日(俄历),沙
怎么才能用nero 刻录flac格式
田村居委会地址有知道的么?有点事想过去!
有没有模拟股票交易的软件 不用开户的那种 只
请问,重装系统之后的网络问题,昨天重新装了次
宝宝多手指,没有骨头
新装的系统反应慢~连鼠标都一下一下的动!装
单选题相同规格的玻璃瓶子,分别装满清水和盐
单选题The police always take&nb
民丰县国税局办公地址在什么地方?我要处理点
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?