gpt4 book ai didi

perl - 如何在 Perl 的客户端服务器程序中发送数组?

转载 作者:行者123 更新时间:2023-12-04 23:09:30 25 4
gpt4 key购买 nike

我有一个客户端-服务器 Perl 程序。我想将存储在数组中的消息发送到服务器。

服务器代码:

use IO::Socket::INET;

# Creating a a new socket
$socket=new IO::Socket::INET->new(LocalPort=>5000,Proto=>'udp');

print "\nUDPServer Waiting for client on port 5000";

while(1)
{
$socket->recv($recieved_data,1024);
$peer_address = $socket->peerhost();
$peer_port = $socket->peerport();
print "\n($peer_address , $peer_port) said : $recieved_data";
}

客户端代码::
use IO::Socket::INET;

# Create a new socket
$socket=new IO::Socket::INET->new(PeerAddr=>'127.0.0.1',PeerPort=>5000,Proto=>'udp');

@message_array = ("message", 120, "sample");
$socket->send(@message_array);

在服务器端我改变了,
$socket->recv(@recieved_data,1024);

但我收到这样的错误,
UDPServer Waiting for client on port 5000usage: $sock->recv(BUF, LEN [, FLAGS]) at udp_server.pl line 17

如何发送数组并将其打印或显示在服务器端。?

最佳答案

您必须序列化数据。您通过网络发送序列化的数据 block ,然后对其进行反序列化。

有很多选择。印尼 Perl 贩子最近制作了 a comparison of serialization modules

Perl 自带 Storable ,它可以正常工作,尽管您必须小心模块没有以某种方式更改,以便一个版本的序列化与另一个版本一起使用。

YAML等数据格式或 JSON这可能会更好,因为它们不依赖于模块版本。两者都可以处理复杂的数据结构,尽管 YAML 可以处理 Perl 对象而 JSON 不能(尽管 JSYNC 可以)。每个选项都有不同的权衡。

关于perl - 如何在 Perl 的客户端服务器程序中发送数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3896599/

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