【问题标题】:2 way communication between Client-Server Scripts through Perl通过 Perl 实现客户端-服务器脚本之间的 2 路通信
【发布时间】:2013-03-31 00:50:51
【问题描述】:

要求:

  1. 服务器等待连接。
  2. 一旦客户端运行,通过socket的连接就开发成功了。
  3. 服务器读取文本文件并将消息发送给客户端。
  4. 客户端监听并打印。
  5. 客户端读取文本文件向服务器发送消息(确认)。
  6. 服务器监听并打印。

【问题讨论】:

    标签: perl sockets network-programming client-server


    【解决方案1】:

    这是解决上述问题的方法:

    服务器脚本:

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use IO::Socket::INET;
    
    my $socket;
    my  $clientsocket;
    my $serverdata;
    my $clientdata;
    
    $socket = new IO::Socket::INET (
        LocalHost => '127.0.0.1',
        LocalPort => '0155',
        Proto => 'tcp',
        Listen => 1,
        Reuse => 1
    ) or die "Oops: $! \n";
    print "Waiting for the Client.\n";
    
    
    $clientsocket = $socket->accept();
    
    print   "Connected from : ", $clientsocket->peerhost();     # Display messages
    print   ", Port : ", $clientsocket->peerport(), "\n";
    
    # Write some data to the client  
    $serverdata = "This is the Server speaking :)\n";
    print $clientsocket "$serverdata \n";
    
    # read the data from the client
    $clientdata = <$clientsocket>;
    print "Message received from Client : $clientdata\n";
    
    $socket->close();  
    

    客户端脚本:

    #!/usr/bin/perl
    
    use strict;
    use warnings;
    use IO::Socket::INET;
    
    my $socket;
    my $serverdata;
    my $clientdata;
    
    $socket = new IO::Socket::INET (
      PeerHost => '127.0.0.1',
      PeerPort => '0155',
      Proto => 'tcp',
    ) or die "$!\n";
    
    print "Connected to the Server.\n";
    
    # read the message sent by server.
    $serverdata = <$socket>;
    print "Message from Server : $serverdata \n";
    
    # Send some message to server.
    $clientdata = "This is the Client speaking :)";
    print $socket "$clientdata \n";
    
    $socket->close();
    

    【讨论】:

      猜你喜欢
      • 2013-03-31
      • 1970-01-01
      • 2014-08-04
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 2012-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多