send(clientsocket,(char*)&b,sizeof(b),0)<0中的0和<0在C语言中如何理解?
2个回答
展开全部
你问的是两个问题
第一个问题,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)
所以该语句是判断发送是否失败。
第一个问题,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)
所以该语句是判断发送是否失败。
展开全部
最后那个参数0代表flag也就是控制send行为的一些参数,好像并没有用到,一般使用0也就是默认,这个参数不重要。
send函数copy数据成功,就返回实际copy的字节数,如果send在copy数据时出现错误,那么send就返回SOCKET_ERROR;如果send在等待协议传送数据时网络断开的话,那么send函数也返回SOCKET_ERROR。SOCKET_ERROR应该是个负数,所以这个<0代表了判断send是否执行成功
send函数copy数据成功,就返回实际copy的字节数,如果send在copy数据时出现错误,那么send就返回SOCKET_ERROR;如果send在等待协议传送数据时网络断开的话,那么send函数也返回SOCKET_ERROR。SOCKET_ERROR应该是个负数,所以这个<0代表了判断send是否执行成功
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询