[问题已通过遵循评论者的评论] 更新,当我使用以下命令执行prop.obj时 “ perl sendXssl.pl 主机名 端口 prop.obj” ,它给出了错误,因为“错误文件描述符错误,ssl_error = SSL连接尝试失败在sendXssl.pl第6行。 请帮我解决这个问题。 我的Perl程序在下面给出...
use IO::Socket::SSL qw( SSL_VERIFY_NONE );
use strict;
use warnings qw( all );
$|=1;
my $sock = IO::Socket::SSL->new(
PeerHost => $ARGV[0],
PeerPort => $ARGV[1],
SSL_verify_mode => SSL_VERIFY_NONE)
or die "error=$!, ssl_error=$IO::Socket::SSL::SSL_ERROR";
print $sock "X";
my $data ;
my $file = $ARGV[2];
open(my $fh,'<',$file) or die "Error 2 $!\n";
{
local $/;
$data = <$fh>;
}
close($fh);
my $pack = $data;
print $sock $pack;
我从以下Java文件中创建了 prop.obj 对象
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.util.Properties;
public class PropertiesX {
public static void main(String[] args) {
try {
String[] s = new String[1];
s[0] = "notepad.exe";
Properties p = new Properties();
p.put("commandArgs",s);
p.setProperty("parent", "c:\\windows\\system32\\notepad.exe");
FileOutputStream fos = new FileOutputStream("prop.obj");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(p);
oos.close();
System.out.println(p.toString());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
答案 0 :(得分:0)
您正在将直接和间接方法语法混合在一起:
$sock = new IO::Socket::SSL->new(
# ~~~ ~~~
PeerHost => $ARGV[0],
PeerPort => $ARGV[1],
SSL_verify_mode => SSL_VERIFY_NONE)
删除第一个new
,然后重试。