Perl套接字发送哈希

Sre*_*ala 3 sockets perl

我试图在Perl中创建一个套接字客户端.服务器端是在本地主机上运行的C程序.

我必须在套接字上发送一个哈希值.这是我正在使用的一段代码.

sub applyGlobalConfig {
    my ($globalConfig, $ignoreData) = @_;

    my $socket = IO::Socket::INET->new(PeerAddr => $PEER_HOST,
                                       PeerPort => $PEER_PORT,
                                       Proto    => "tcp",
                                       Type     => SOCK_STREAM)
          or die "Couldn't connect to $PEER_HOST:$PEER_PORT : $@\n";

    my $reconfigResult;

    print $socket "$113\n";

    close($socket);

    unless ($reconfigResult) {
        return 0;
    }

    return ERR_NULL;
}
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,$globalConfig将包含一个哈希引用,我想通过套接字发送它.我无法弄清楚.我用谷歌搜索并发现了一些对Dumper的引用但是不太了解.如何发送哈希?

Jim*_*son 6

要通过套接字发送数据结构,必须将其"序列化"为字节流.然后接收程序必须对其进行反序列化以重新组装数据结构.如果接收程序期望流处于特定形式,则发送程序必须产生预期的格式.

如果您正在编写双方,那么您可以选择对您的情况有意义的序列化格式,例如JSON或XML,其中任何一个都可以表示Perl哈希.但是,如果不了解有关您具体情况的更多详细信息,则可以通过答案的方式提供所有相关信息.