Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux ssl_peek是如何工作的?ssl_peek的行为是否与recv_MSG的MSG_peek相同_Linux_Network Programming_Openssl - Fatal编程技术网

Linux ssl_peek是如何工作的?ssl_peek的行为是否与recv_MSG的MSG_peek相同

Linux ssl_peek是如何工作的?ssl_peek的行为是否与recv_MSG的MSG_peek相同,linux,network-programming,openssl,Linux,Network Programming,Openssl,ssl_peek是如何工作的?ssl_peek的行为是否与MSG_peek标志的行为相同?我只想读取几个字节的有效负载,并需要在此基础上做出决定 不,不一样。它要求已接收到包含应用程序数据的完整SSL消息,并且该消息已被解密。在一般情况下,这将不是真的,当它是真的,它会启动解密和MAC检查过程。因此,与MSG_PEEK相比,它不太可能返回任何数据,并且在返回数据时执行成本更高。帮助我理解消息的最后一部分,因此只需总结一下,ssl_PEEK会将所有套接字数据读入用户空间,然后解密整个数据,然后允许

ssl_peek是如何工作的?ssl_peek的行为是否与MSG_peek标志的行为相同?我只想读取几个字节的有效负载,并需要在此基础上做出决定

不,不一样。它要求已接收到包含应用程序数据的完整SSL消息,并且该消息已被解密。在一般情况下,这将不是真的,当它是真的,它会启动解密和MAC检查过程。因此,与MSG_PEEK相比,它不太可能返回任何数据,并且在返回数据时执行成本更高。

帮助我理解消息的最后一部分,因此只需总结一下,ssl_PEEK会将所有套接字数据读入用户空间,然后解密整个数据,然后允许我查看数据?现在,我的堆栈只是使用MSG_PEEK读取数据包的前几个字节,然后将数据拼接到另一个套接字。“man”页面中的描述对我来说非常清楚:“SSL_PEEK()函数将指定SSL的num bytes复制到缓冲区buf”。