您的位置:首页 > 运维架构

bind socket error:Socket operation on non-socket(errno:88)出错处理

2014-12-20 10:00 1556 查看
http://www.cnblogs.com/auleaf/archive/2011/09/19/2181336.html

在send()发送数据的时候出现下面这个错误

send() error.: Socket operation on non-socket

已导致不能发送错误,虽然这个错误时出现在send()调用,但是其错误源头在accept()调用,我调试时,打印了accept()返回值居然是0,mygod……

原因:

在accept()调用的时候出现了。运算符优先级错误。汗……一个低级错误,郁闷了我昨天一个下午。

原函数错误写法是:

if(connectfd = accept(listenfd,(struct sockaddr*)&client,&sin_size)==-1)

{

perror("accept() error!\n");

exit(1);

}

正确的写法应该是:

if((connectfd = accept(listenfd,(struct sockaddr*)&client,&sin_size))==-1)

{

perror("accept() error!\n");

exit(1);

}

ok这样就搞定了

相类似这样的问题,首先检查各个函数的运算符优先级问题

查看各个函数调用的返回值

有梦想就不会觉得苦.Do you know what is the glittering life?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐