Perl TCP插座通信



我试图将TCP数据包发送到主机并获得响应,并且显然不正确。

我已经与许多帖子甚至我的perl食谱进行了比较,无法弄清楚我的问题。非常简单地尝试以下内容:

use strict;
use warnings;
use IO::Socket::INET;
$| = 1;
my $socket = new IO::Socket::INET (
    PeerHost => '<the_host_name>',
    PeerPort => '33792',
    Proto => 'tcp'
);
unless($socket) {
    print "couldn't connect to the servern";
}
# data to send to a server
my $req = <<SBCEND;
START
AUTOLOGUE CENTRAL
TYPE|QUOTE|
H|1|1.0|Regular|CANCEL|6072|TESTDT|JOHNAIX| | |26000|DEMO| | | | | | | | |0
P|1|HAS|LF115|HAS|LF115|10| | | | | | | | | | | | | | |
P|2|WIX|51515|WIX|51515|24| | | | | | | | | | | | | | |
P|3|FRA|PH8A|FRA|PH8A|2| | | | | | | | | | | | | | |
END
SBCEND
my $message = "02".$req."03";
my $size = $socket->send($message);
shutdown($socket, 1);
my $response = "";
$socket->recv($response, 1024);
$socket->close();
print "sent: $sizen$reqn";
print "received response: $responsen";

我根本没有任何回应,不确定我是否应该这样做,或者我的要求是否有问题。

当我询问他们的支持时,如果我应该得到任何答复,无论该请求是否有效,他们都会向我发送我应该从文档那里收到的响应。

上面的请求数据是他们发送给我的示例。他们确实告诉我,在我的请求开始时我需要二进制2,然后二进制3,因此我的消息变量上面是我的消息变量。

有人可以告诉我我在这里是否做错了什么?

事实证明,我需要在二进制2之后的新线路,对此行进行了很小的更改:

my $message = "02rn".$req."03";

最新更新