求哪位大佬有asa110Asa Akira磁力下载链接

版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/

之前在这一篇中已经讨论过在accept之前中止连接的情况了不过从最终的结果来看,accept并没有返回错误而是之后调鼡read读取已连接套接字时产生了错误。

另外当一个已完成连接正等待被服务端accept时,select会把该连接的套接字作为读描述符并返回这意味着之後的accept就不应该阻塞,但是会引发一个bug:当客户端跟服务器建立连接之后发送了一个RST包这时accept会阻塞,直到有下一个已完成的连接准备好被accept為止

为了说明这种情况,修改之前TCP服务器的代码:

//select会返回已连接的描述符
 
如上所示select返回已连接的描述符之后,接着就阻塞了导致无法调用accept,通常情况下服务器是没有问题的考虑这么一种情况:如果在建立tcp连接之后,客户端又马上发送了RST就出现了问题。这意味着客戶端在服务器调用accept之前中止了这个连接但是Berkeley版本的linux不会把这个中止的连接返回给服务端,其他linux版本可能返回EPROTO错误而不会返回ECONNABORTED错误。


因為客户端发送了RST后这个已完成的连接被服务器tcp从已完成连接队列中删除掉了,我们假设此时队列中没有任何其他已完成的连接那么之後服务器调用accept就会阻塞,直到已完成连接队列不为空为止就服务器在aceept处阻塞期间来说,它无法处理其他事情

 
为了防止accept阻塞,当select监听的某个套接字有一个已完成连接正等待被accept时把监听的套接字设置为非阻塞,然后调用accept忽略以下错误:
 
 

版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/

之前在这一篇中已经讨论过在accept之前中止连接的情况了不过从最终的结果来看,accept并没有返回错误而是之后调鼡read读取已连接套接字时产生了错误。

另外当一个已完成连接正等待被服务端accept时,select会把该连接的套接字作为读描述符并返回这意味着之後的accept就不应该阻塞,但是会引发一个bug:当客户端跟服务器建立连接之后发送了一个RST包这时accept会阻塞,直到有下一个已完成的连接准备好被accept為止

为了说明这种情况,修改之前TCP服务器的代码:

//select会返回已连接的描述符
 
如上所示select返回已连接的描述符之后,接着就阻塞了导致无法调用accept,通常情况下服务器是没有问题的考虑这么一种情况:如果在建立tcp连接之后,客户端又马上发送了RST就出现了问题。这意味着客戶端在服务器调用accept之前中止了这个连接但是Berkeley版本的linux不会把这个中止的连接返回给服务端,其他linux版本可能返回EPROTO错误而不会返回ECONNABORTED错误。


因為客户端发送了RST后这个已完成的连接被服务器tcp从已完成连接队列中删除掉了,我们假设此时队列中没有任何其他已完成的连接那么之後服务器调用accept就会阻塞,直到已完成连接队列不为空为止就服务器在aceept处阻塞期间来说,它无法处理其他事情

 
为了防止accept阻塞,当select监听的某个套接字有一个已完成连接正等待被accept时把监听的套接字设置为非阻塞,然后调用accept忽略以下错误:
 
 

我要回帖

更多关于 asa akira 磁力 的文章

 

随机推荐