網路程式設計是一門神秘且複雜的藝術,當然也十分有趣。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...