0
我正在使用Net :: Server模块构建一个preforking SSL服务器。 客户端将传输二进制数据,为每个数据集打开一个新的连接或让连接持续打开。Net ::服务器SSL服务器提示需要
数据是动态长度的,头部指定了净荷长度。
问题:
- 什么是读取数据的推荐方式,也支持持久连接?
- 在实际开始接收数据之前,我如何确定SSL会话是否由客户端正确建立?
代码模板:
#!/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(\[email protected])";
}
##
# 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;
}