2011-12-20 39 views
3

我是IO :: SOCKET的新手,也是網絡編程的新手。我已經閱讀了幾篇關於相同的在線教程。我在Windows上運行Perl :(別無選擇,我的目標是通過本地機器上的套接字連接2個進程,一個進程是通過GPIB命令控制設備的Perl腳本,其他進程是帶有Socket連接的.exe文件(類似於Socket連接的Server程序)嘗試在Windows上使用IO :: Socket的新手

這是我打算做的事在我的Perl腳本中創建一個客戶端套接字並將它連接到.exe套接字(通過端口)fork客戶端程序讀/寫操作,問題是我不知道從哪裏開始編碼,我想我需要一個主Perl腳本,並將另一個通過GPIB控制設備的Perl腳本作爲Perl模塊。

我將不勝感激關於這個想法的一些反饋以及socket連接器上的一些編程示例灰。

+0

你可以從http://perldoc.perl.org/IO/Socket/INET.html – 2011-12-20 21:59:31

+0

Ivan的例子開始,這不是很好的建議,原因有兩個:那件文檔僅適用於已知道他們在做什麼;而且你忽略了提及IO :: Socket :: INET應該與Perl 5.14一起使用,並且更好,因爲早期版本只有IPv4,並且在2011年編寫純IPv4軟件是一個壞主意。 – daxim 2011-12-20 22:06:16

+0

我猜如果我是在本地機器上運行應用程序我不必擔心IP4或IP6? – user2829 2011-12-20 23:16:21

回答

2

運行不祥的服務器可執行文件。它綁定到一個端口並開始監聽。有在插座一個有意義的數據交換,你需要知道的三件事:

  1. 主機名
  2. 端口號
  3. 協議,即該說些什麼,當你談論到服務器,以及如何解釋其答案

use IO::Socket::IP qw(SOCK_STREAM); 
my $socket = IO::Socket::IP->new(
    PeerHost => $host_name, 
    PeerPort => $port_number, 
    Type  => SOCK_STREAM, # Transmission Control Protocol 
) or die "Cannot construct socket - [email protected]"; 
$socket->say('Hello, server! How are you doing?'); 
say for $socket->getlines; 

有關可用方法的相關文件是在IO::Socket::IPIO::SocketIO::Handle