0
我正在嘗試創建服務器和客戶端,其中服務器根據客戶端發送的內容向客戶端返回不同的消息。如果客戶端建立連接但什麼都不發送,服務器將返回消息1,並且如果客戶端發送了一些數據,服務器將返回消息2.但是這不起作用,客戶端一直在等待數據並且沒有打印任何東西。Perl Socket有條件不起作用
客戶:
use IO::Socket;
my $sock = new IO::Socket::INET (
PeerAddr => '10.1.1.28',
PeerPort => '7070',
Proto => 'tcp');
if (@ARGV != "") {
print $sock "$ARGV[0] $ARGV[1]";
} else {
$data = <$sock>;
print $data;
}
$sock->close;
服務器
use IO::Socket;
my $sock = new IO::Socket::INET (
LocalHost => '10.1.1.28',
LocalPort => '7070',
Proto => 'tcp',
Listen => '1',
);
while(1) {
my $new_sock = $sock->accept();
if (<$new_sock> ne "") {
print $new_sock "conection with parameters";
} else {
print $new_sock "default message";
};
始終使用'使用嚴格的;使用警告;' – ikegami 2013-03-04 20:36:50
「如果clint建立連接但不發送任何東西,則服務器返回消息1」,否則不會。服務器等待客戶無條件發送一些東西。 – ikegami 2013-03-04 20:38:08