用Perl語言進行Socket程式設計

2021-03-31 08:56:30 字數 3642 閱讀 2555

網路程式設計是一門神秘且複雜的藝術,當然也十分有趣。perl語言提供了豐富的tcp/ip網路函式,所有這些函式都直接**於c語言的socket庫函式.

由於perl語言和c語言的socket庫函式在型式和使用方法上都是一樣的,因此會使用perl語言進行socket程式設計, 當然也就會使用c語言進行socket程式設計.

下面是perl語言中有關的socket庫函式列表:

函式原型 使用說明

accept(newsocket,genericsocket) 接受請求的socket連線.如果成功,則返回壓縮形式的網路位址;否則返回false.

範例:

if (!$connect = accept(new,handle))

bind(socket,name) 建立name與socket的繫結,其中name應該是對應socket正確型別的壓縮位址.

如果成功,則返回真;否則返回假.

在使用socket進行網路程式設計時,這一函式十分重要,因為它建立了socket控制代碼與網路上某個位址的關聯.

範例:

bind(sh,$socketaddress);

connect(socket,name) 試圖與已經呼叫了accept()函式並等待建立連線的另外乙個程序進行對話.

如果成功,則返回真;否則返回假.name應該是對應socket控制代碼正確型別的壓縮位址

範例:

connect(sock,$address) || die "can』t connect with remote host: $!

"; ($name, $alias, $addrtype, $length, $address)

其中, $name是與ip位址對應的主機名, $alias是對應$name的其他別名, $addrtype是網路位址的型別, $length是位址的長度, 而$address則是壓縮形式ip位址的列表.

範例:

$packedaddress = pack("c4", $ipaddr);

($name, $alias, $addrtype, $length, $address)

=gethostbyaddr($packedaddress,2);

gethostbyname(name) 與上面的gethostbyaddr()函式類似,不過在這裡主機名是作為引數.返回的資訊格式完全相同.

範例:

$host = "stuff.***";

($name, $alias, $addrtype, $length, $address)

=gethostbyname($host);

@ip = unpack("c4",$address[0]);

$hostip = join(".", @ip);

驗證郵箱密碼的程式的原碼

下面的**在兩種作業系統下對263.***和pop.***ease.***兩個pop3伺服器嚴格測試, 證明是成功的.

第一種:

作業系統:windows 98 中文版

伺服器:apache 1.3.9 for win

perl 直譯器:activestate tool corp的perl for win32 , version 5.005_03 built for mswin32-x86-object

第二種:

作業系統:red hat linux 6.1

伺服器:apache 1.3.6 for linux

perl 直譯器:version 5.005_03 built for i386-linux

print密碼是正確的!

用Perl語言進行Socket程式設計

用perl語言進行socket程式設計 網路程式設計是一門神秘且複雜的藝術,當然也十分有趣。perl語言提供了豐富的tcp ip網路函式,所有這些函式都直接 於c語言的socket庫函式.由於perl語言和c語言的socket庫函式在型式和使用方法上都是一樣的,因此會使用perl語言進行socket...

用Perl語言進行Socket程式設計

用perl語言進行socket程式設計 網路程式設計是一門神秘且複雜的藝術,當然也十分有趣。perl語言提供了豐富的tcp ip網路函式,所有這些函式都直接 於c語言的socket庫函式.由於perl語言和c語言的socket庫函式在型式和使用方法上都是一樣的,因此會使用perl語言進行socket...

用TCL語言進行socket程式設計

昨天還在說tcl語言非常不著調,今天卻突然有種頓悟的感覺.稍後再寫一下對tcl語言的其它想法,現在先寫寫基本的socket程式設計示例.下面的例子是除錯成功的,有興趣的朋友直接可以照做即可 server.tcl set listensocket socket server accept 2540 p...