次の方法で同じソケットにリクエストを送受信しようとしています。
- オープンソケット
- LOGINPDU を送信し、
- サーバーからの応答を受信し、OK の場合は TRANSPDU を送信します
- サーバーからの受信応答
- LOGOUTPDU を送信します。
以下でやろうとしていることのサンプル:
#1
my $sock = IO::Socket::INET->new( Proto=> "tcp", PeerAddr => "$IP",
PeerPort => "$port") ||
die "Could not connect to host => $IP:$port \n";
#2
print $sock $LOGINPDU."\n";
#3
while($ans=<$sock>) {
$ans1.=$ans;
}
$sock->flush();
if($ans1) {
print $sock $transPDU."\n";
#4
while($tns=<$sock>) {
$tns.=$tns;
}
}
#5
$sock->close();
問題は、最初の要求に対する応答しか受信していないことです。