ネットワーク プログラミングは神秘的で複雑な芸術ですが、もちろん非常に興味深いものでもあります。 Perl 言語は豊富な TCP/ip ネットワーク関数を提供しますが、それらはすべて C 言語のソケット ライブラリ関数から直接派生したものです。Perl 言語と C 言語のソケット ライブラリ関数は形式と使用法が同じであるため、そのため、ソケット プログラミングには Perl 言語を使用できます。もちろん、ソケット プログラミングには C 言語も使用できます。
以下は、Perl 言語の関連ソケット ライブラリ関数のリストです。
関数プロトタイプの使用手順
accept ( NEWSOCKET、GENERICSOCKET) を使用して、要求されたソケット接続を受け入れます。成功した場合は、圧縮形式でネットワーク アドレスを返します。 $!
";
}
bind (SOCKET, NAME) は、NAME と SOCKET の間のバインディングを確立します。NAME は、ソケットの正しいタイプに対応する圧縮アドレスである必要があります。
成功した場合は true を返し、それ以外の場合は false を返します。ネットワーク プログラミングにソケットを使用する場合、この関数は非常に便利です。重要なのは、ソケット ハンドルとネットワーク上のアドレス間の関連付けを確立するためです。
例:
bind(SH,$SocketAddress);
connect(SOCKET,NAME) は次のことを試みます。 accept() 関数を呼び出し、接続の確立を待機している accept() 関数と接続します。
成功した場合は true を返し、そうでない場合は false を返します。NAME は正しいアドレスに対応する必要があります。 SOCKET ハンドルのタイプ
例:
connect(SOCK,$address)||die"Can'tconnectwithremotehost:$!
";
gethostbyaddr(ADDRESS,TYPE) は、圧縮されたネットワーク アドレスを人間にとってわかりやすい名前とアドレスに変換します
ホストの IP アドレスのみがわかっている場合、この関数を使用してホスト名とその他のネットワーク情報をクエリできます。
($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. com";
($name,$alias,$addrtype,$length,$address)
=gethostbyname($Host);
@IP=unpack("C4", $address[0]);
$HostIP=join (".",@IP);
電子メール パスワードを検証するプログラムの元のコード
次のコードは、com の 2 つの POP3 サーバー上の 263.net と Pop.netease で動作することが厳密にテストされ、証明されました。
最初のタイプ:
オペレーティング システム: Windows98 中国語バージョン
WWW サーバー: Apache1.3.9forWin
Perl インタプリタ: ActiveStateToolCorp の PerlforWin32、バージョン 5.005_03builtforMSWin32-x86-object
2 番目のタイプ:
オペレーティング システム: RedHatlinux6.1
W WWサーバー: Apache1.3.6forLinux
Perl インタプリタ: version5.005_03builtfori386-linux
#!/usr/bin/perl
#test.pl
#Authorhomepage: http://spot.126.com
usestrict;
useSocket;
my$pop3server="263.net";
my$port=110;
$|=1;
PRint"Content-type:text/html
";
print"POP3
";
print"
" ;
my($a,$name,$aliases,$proto,$type,$len,$thataddr,$thisaddr,$i);
my$AF_INET=2;
my$SOCK_STREAM=1;
my $sockaddr="Sna4x8";
($name,$aliases,$proto)=getprotobyname("tcp");
($name,$aliases, $port)=getservbyname($port,"tcp")
$port=~/^d $/;;
($name,$aliases,$type,$len,$thataddr)=gethostbyname($pop3server);
my$this=pack($sockaddr,$AF_INET,12345) ,$thisaddr);
my$that=pack($sockaddr,$AF_INET,$port,$thataddr);
my$mysocket=socket(S, $AF_INET,$SOCK_STREAM,$proto);
if($mysocket )
{
}
else
{
print "ソケットを開けません:$!";
exit(0);
}
my$mybind=bind (S,$this);
if($mybind)
{
}
else
{
print「バインドできません! :$!";
exit(0);
}
my$myconnect=connect(S,$that);
if($myconnect)
{
}
else
{
print"接続エラー:$!" ;
exit(0);
}
my$BUF="";
my$SenderIP=recv(S,$BUF,596,0);
if($SenderIP)
{
}
else
{
print "受信エラー: $!";
exit(0);
}
if(substr($BUF,0,3)eq" OK")
{
}
else
{
print"POP3 サーバー エラー!
";
exit(0);
}
my$BUFFER="USERzhangsan";
$BUFFER.=chr(13);
$BUFFER.=chr(10);
my$SENVAL=send( S,$BUFFER,0);
if($SENVAL)
{
}
else
{
print "送信エラー: $!";
exit(0);
}
my$BUF="";
my$SenderIP=recv(S,$BUF,4096,0);
if($SenderIP)
{
}
else
{
print "受信エラー: $!";
exit(0);
}
if(substr($BUF,0,3)eq" OK")
{
}
else
{
print"そのようなアカウントはありません!
";
exit(0);
}
$BUFFER="PASS12345678 ";
$BUFFER.=chr(13);
$BUFFER.=chr(10);
my$SENVAL=send(S,$BUFFER,0);
if($SENVAL)
{
}
else
{
print"送信エラー: $!";
exit(0);
}
$BUF="";
my$SenderIP=recv(S,$BUF,196,0);
if($SenderIP)
{
}
else
{
print "受信エラー: $!";
exit(0);
}
if(substr($BUF,0,3)eq" OK")
{
}
else
{
print "パスワードが間違っています!";
exit(0);
}
print パスワードは正しいです!
上記は Perl 言語を使用したソケットプログラミングの内容です。その他の関連記事については、こちらをご覧ください。 PHP 中国語 Web サイト (www .php.cn)!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

WebStorm Mac版
便利なJavaScript開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

メモ帳++7.3.1
使いやすく無料のコードエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。
