send(clientsocket,(char*)&b,sizeof(b),0)<0中的0和<0在C语言中如何理解?

 我来答
bjl0523
2013-05-22 · TA获得超过118个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:73.6万
展开全部
你问的是两个问题
第一个问题,send函数中第4个参数的含义,send函数原型
int PASCAL FAR send( SOCKET s, const char FAR* buf, int len, int
flags);
s:一个用于标识已连接套接口的描述字。
buf:包含待发送数据的缓冲区。
len:缓冲区中数据的长度。
flags:调用执行方式。
flags可以为0、MSG_DONTROUTE或者MSG_OOB
0 :表示无特殊行为
MSG_DONTROUTE :指明数据不选径,一个WINDOWS套接口供应商可以忽略此标志
MSG_OOB : 发送带外数据(仅适用于SO_STREAM)

第二个问题,send函数返回值
因为send函数发送失败时返回SOCKET_ERROR
SOCKET_ERROR宏定义为#define SOCKET_ERROR (-1)
所以该语句是判断发送是否失败。
tn...6@163.com
2013-05-20 · TA获得超过116个赞
知道答主
回答量:151
采纳率:0%
帮助的人:103万
展开全部
最后那个参数0代表flag也就是控制send行为的一些参数,好像并没有用到,一般使用0也就是默认,这个参数不重要。

send函数copy数据成功,就返回实际copy的字节数,如果send在copy数据时出现错误,那么send就返回SOCKET_ERROR;如果send在等待协议传送数据时网络断开的话,那么send函数也返回SOCKET_ERROR。SOCKET_ERROR应该是个负数,所以这个<0代表了判断send是否执行成功
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式