gpt4 book ai didi

perl - 需要 Net::Server SSL 服务器提示

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:04 24 4
gpt4 key购买 nike

我正在使用 Net::Server 模块构建一个 preforking SSL 服务器。客户端将传输二进制数据,为每个数据集打开一个新连接或让连接持久打开。

数据是动态长度的,带有指定负载长度的 header 。

问题:

  • 推荐的读取数据的方式是什么,以支持持久连接?<​​/li>
  • 在实际开始接收数据之前,如何确定客户端是否正确建立了 SSL session ?

代码模板:

#!/usr/bin/perl

use common::sense;

use IO::Socket;
use base qw(Net::Server::PreForkSimple);

my $sslErrorCallback = 'ssl_error_callback';
__PACKAGE__->run(
port => "*:12345:ssleay:IPv4",
SSL_key_file => "server.pem",
SSL_cert_file => "server.crt",
SSL_error_callback => \&$sslErrorCallback,
);
exit;

################################################################################

sub ssl_error_callback {
print STDERR "SSL failed; Data::Dumper:Dumper(\$@)";
}

##
# process_request - for Net::Server
sub process_request {
my $self = shift;
my $serverProp = $self->{'server'};

# howto check if ssl session is established?

while(1) {
# wait until new data is available
# read/verify the header (5 byte)
# read/verify the payload (XX byte)
# do something with the payload
};

return;
}

最佳答案

  1. 覆盖 read检查关闭的连接。
  2. 覆盖 bind_SSL进行额外的 Net::SSLeay 检查。

关于perl - 需要 Net::Server SSL 服务器提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11368736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com