如何在Perl中的客户端服务器程序中发送数组?
发布时间:2020-12-15 23:21:43 所属栏目:大数据 来源:网络整理
导读:我有一个Client-Server 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
我有一个Client-Server 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 如何发送数组并在服务器端打印或显示它. 解决方法
您必须序列化数据.您通过线路发送序列化的数据块然后反序列化它.
有很多选择.印度尼西亚Perl贩子最近发了a comparison of serialization modules Perl附带Storable,可以正常工作,但你必须要小心,模块没有以某种方式改变,以便一个版本的序列化与另一个版本一起使用. 有些数据格式(如YAML或JSON)可能更好,因为它们不依赖于模块版本.两者都可以处理复杂的数据结构,虽然YAML可以处理Perl对象而JSON不能(尽管JSYNC可以).每个选项都有不同的权衡. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |