LINUX C下ACCEPT失败,前面SOCKET,BIND,LISTEN都成功

ACCEPT返回值是0,是INVALIDSOCKET不是-1errno返回值是0,虽然现实没错,但始终是INVALIDSOCKET,一般SOCKETERROR才返回错误值... ACCEPT返回值是0,是INVALID SOCKET 不是-1
errno返回值是0,虽然现实没错,但始终是INVALID SOCKET,一般SOCKET ERROR才返回错误值。
我前面已经建立了一个SOCKET并使用了,前面那个返回值是3。
另外我用的是linux c,第一个应该是第一个socket成功后的返回值。
展开
 我来答
老子出关十八t
2010-12-22 · TA获得超过333个赞
知道答主
回答量:284
采纳率:0%
帮助的人:242万
展开全部
我建议 阅读 《unix网络编程》里面有很详细的解释

举个例子:
你可以把socket的IO操作看做是等人
阻塞:
你站在和人越好的地方等人,你们的约定了一个时间,当你等的时间超过了这个时间后你就可以离开这个地点去干其他的事情,否则你将继续在这里等人。而INFINIT就是无限等待下去

非阻塞:
就是你不需要站在越好的地点等人,你可以作在离这个地点很近的一个咖啡厅喝茶听音乐,但你能够看到这个约定地点的情况,一旦有人来你就可以走过去和那个人见面

阻塞:人来了以后你可以第一时间见到,而不用别人等你
非阻塞:和你正在做的事情有关,如果你在坐在咖啡厅看电视,就很有可能造成别人等你的情况了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jansdz
2010-12-22 · TA获得超过721个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:526万
展开全部
应答是要使用另外一个空的socket对象进行应答。而且这个socket对象必须没有被赋值。例如下面的程序段;
while (AcceptSock == SOCKET_ERROR)
{
AcceptSock = accept(ConnectSocket,NULL,NULL);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ziyang64
2010-12-22 · TA获得超过962个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:807万
展开全部
看看errno,如果是EAGAIN或EWOULDBLOCK是正常的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
菊花繁忙
2010-12-26 · TA获得超过355个赞
知道答主
回答量:42
采纳率:0%
帮助的人:53.1万
展开全部
你bupt-is的吧?我也遇到这个问题了,换台电脑就好了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式