在现有的 DTLS 连接上,即 DTLS 握手已在端口 5000 上成功完成,如果服务器收到传入的 DTLS 连接,即 DTLS 客户端问候数据包,则 SSL_read 正在生成 SSL_ERROR_SYSCALL
。
谁能告诉我原因。
场景是客户端在服务器的5000端口与服务器建立了DTLS连接。客户端更改的 IP 地址可能是由于从 Wi-Fi 过渡到 3G 或反之亦然。因此,现在客户端将再次尝试在服务器的同一端口 5000 上与服务器建立 DTLS 连接。
请大家告诉我
问题 1。为什么 SSL_read 生成错误 SSL_ERROR_SYSCALL 以及如何才能继续?
问题 2。我们是否可以在同一端口上的现有 DTLS 连接上处理另一个传入的 DTLS 连接,而无需清理已经存在的 DTLS 连接?
在此先感谢您的帮助, 维内·斯里瓦斯塔瓦
最佳答案
已找到问题的解决方案。
确定的问题有两个:
在具有另一个 DLTS 连接的端口上获得传入 DTLS 连接时,需要生成另一个 SSL 句柄并将其视为单独的 DTLS 连接。
SSL_Read 调用中提供的长度必须正确。
在提供适当的参数并生成新的 SSL 句柄后,问题就解决了。无论如何感谢评论。
关于c - 为同一端口上现有 DTLS 连接上的传入 DTLS 连接获取 SSL_ERROR_SYSCALL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390632/