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";
나는 전혀 응답을하지, 확실하지 내가 또는 뭔가가 내 요청에 이상이있는 경우로되어있어합니다.
아무런 반응이 없으면 지원을 요청할 때 요청이 유효한 경우 문서에서 응답을 보내야합니다.
위의 요청 데이터는 저에게 보낸 예제입니다. 그들은 나의 요청과 바이너리 3의 시작 부분에 바이너리 2가 필요하다고 말했고, 따라서 위의 메시지 변수를 보았습니다.
내가 여기서 뭔가 잘못하고 있다고 누군가가 말해 줄 수 있습니까?
하세요'엄격한 사용; '경고를 사용합니다. '그리고 당신은 어떤 오류가 있습니까? – AbhiNickz
아 물론. 초기 게시물은 웹에서 발견 된 아이디어로 해킹당했습니다. 내가 처음 시도한 것을 편집하고 경고 나 오류가 표시되지 않습니다. 그리고 응답 없음 : ( – rwfitzy
코드는 "finish"코드없이 에러없이 끝나거나 (아마도'recv' 호출에서) 차단합니까? – Alnitak