只有一次,在创建新连接时,我想查看流以确定该连接是否为 SSL 连接。为此,我使用带有 MSG_PEEK 标志的 recv()。问题是对于不是 SSL 连接并且没有任何初始传入数据的连接,recv 会阻塞几秒钟。我该如何解决?
最佳答案
如果您不想阻止调用,您也可以提供 MSG_DONTWAIT
标志(不是 POSIX,但已广泛实现)——但是您如何区分 SSL 连接初始数据尚未到达并且是非 SSL 连接?
似乎要可靠地执行此操作,您无论如何都需要等待数据的第一部分到达。
关于c - 为什么带有 MSG_PEEK 的 recv() 会阻塞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13169534/