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成功后的返回值。 展开
errno返回值是0,虽然现实没错,但始终是INVALID SOCKET,一般SOCKET ERROR才返回错误值。
我前面已经建立了一个SOCKET并使用了,前面那个返回值是3。
另外我用的是linux c,第一个应该是第一个socket成功后的返回值。 展开
4个回答
展开全部
我建议 阅读 《unix网络编程》里面有很详细的解释
举个例子:
你可以把socket的IO操作看做是等人
阻塞:
你站在和人越好的地方等人,你们的约定了一个时间,当你等的时间超过了这个时间后你就可以离开这个地点去干其他的事情,否则你将继续在这里等人。而INFINIT就是无限等待下去
非阻塞:
就是你不需要站在越好的地点等人,你可以作在离这个地点很近的一个咖啡厅喝茶听音乐,但你能够看到这个约定地点的情况,一旦有人来你就可以走过去和那个人见面
阻塞:人来了以后你可以第一时间见到,而不用别人等你
非阻塞:和你正在做的事情有关,如果你在坐在咖啡厅看电视,就很有可能造成别人等你的情况了
举个例子:
你可以把socket的IO操作看做是等人
阻塞:
你站在和人越好的地方等人,你们的约定了一个时间,当你等的时间超过了这个时间后你就可以离开这个地点去干其他的事情,否则你将继续在这里等人。而INFINIT就是无限等待下去
非阻塞:
就是你不需要站在越好的地点等人,你可以作在离这个地点很近的一个咖啡厅喝茶听音乐,但你能够看到这个约定地点的情况,一旦有人来你就可以走过去和那个人见面
阻塞:人来了以后你可以第一时间见到,而不用别人等你
非阻塞:和你正在做的事情有关,如果你在坐在咖啡厅看电视,就很有可能造成别人等你的情况了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应答是要使用另外一个空的socket对象进行应答。而且这个socket对象必须没有被赋值。例如下面的程序段;
while (AcceptSock == SOCKET_ERROR)
{
AcceptSock = accept(ConnectSocket,NULL,NULL);
}
while (AcceptSock == SOCKET_ERROR)
{
AcceptSock = accept(ConnectSocket,NULL,NULL);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看errno,如果是EAGAIN或EWOULDBLOCK是正常的。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你bupt-is的吧?我也遇到这个问题了,换台电脑就好了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询