1
私はTCPパケットをホストに送り、応答を得ようとしており、明らかに何か正しいことをしていません。Perl TCPソケット通信
私は多くの投稿や私のPerl Cookbookと比較して、どこが間違っているのか分かりません。非常に単純に以下しよう:
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 server\n";
}
# 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 = "\002".$req."\003";
my $size = $socket->send($message);
shutdown($socket, 1);
my $response = "";
$socket->recv($response, 1024);
$socket->close();
print "sent: $size\n$req\n";
print "received response: $response\n";
は、私はすべての応答がない、わからない私は、または何かが私の要求が間違っている場合にはなってる場合。
私は彼らのサポートに頼んでも、私が応答を得なければならないときは、リクエストが有効であれば、私はドキュメントから受け取るべき応答を送ってくれます。
上記のリクエストデータは、私に送信された例です。彼らは私の要求の始めにバイナリ2が必要だと言ってきました。
私がここで何か間違っているのか誰かから教えてもらえますか?
'厳格を使用してください。あなたは何のエラーを出していますか? – AbhiNickz
ああ、もちろん。最初の投稿はウェブ上のアイデアからハッキングされました。私は最初に何をしようとしていたのかを編集し、警告やエラーは表示されません。そして、応答がありません:( – rwfitzy
コードはエラーなしで "終了"しますか?(おそらく 'recv'呼び出し時に)ブロックしますか? – Alnitak