|
|
1
2
为什么不在调用前将套接字流设置为非阻塞模式 SSL_accept() ,然后阻塞类似的内容 select() 如果SSL\u accept()返回SSL\u ERROR\u WANT\u READ或SSL\u ERROR\u WANT\u WRITE,则返回超时?或者,您可以在调用SSL_accept()之前阻止select()。两者都应该有效。这样,您至少可以限制连接因错误而被阻止的时间 DoS 比如行为/攻击。 请记住,SSL/TLS是面向记录的,这意味着您必须循环直到读取完整记录。 SSL_pending() 在这种情况下,我们可以提供帮助。 |
|
|
2
0
您可以将套接字置于非阻塞模式,然后从SSL\u accept中获取案例SSL\u ERROR\u WANT\u READ或SSL\u ERROR\u WANT\u WRITE。然后你可以睡一会儿,然后再次尝试接受SSL。在某个超时值之后,可以退出并关闭ssl和套接字句柄。 请注意,这将影响所有SSL操作,这意味着您需要为所有读/写/关机调用执行类似的循环。基本上,任何可以返回WANT_READ或WANT_WRITE的调用。 如果您不喜欢轮询的想法,可以使用select来确定套接字上是否有可用数据……但这可能会变得有点复杂。
|
|
|
3
0
我认为下面的代码可能会帮助其他人解决这个问题。它没有经过充分的测试,只是作为灵感。
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |