Rumah php教程 PHP开发 用Perl语言进行Socket编程

用Perl语言进行Socket编程

Dec 16, 2016 pm 01:54 PM

网络编程是一门神秘且复杂的艺术,当然也十分有趣。Perl语言提供了丰富的TCP/ip网络函数,所有这些函数都
直接来源于C语言的socket库函数.
由于Perl语言和C语言的socket库函数在型式和使用方法上都是一样的,因此会使用Perl语言进行Socket编程,当
然也就会使用C语言进行Socket编程.
下面是Perl语言中有关的socket库函数列表:
函数原型使用说明
accept(NEWSOCKET,GENERICSOCKET)接受请求的socket连接.如果成功,则返回压缩形式的网络地址;否则返回FALSE.
范例:
if(!$Connect=accept(NEW,HANDLE))
{
die"Connectionfailed:$!
";
}
bind(SOCKET,NAME)建立NAME与SOCKET的绑定,其中NAME应该是对应socket正确类型的压缩地址.
如果成功,则返回真;否则返回假.
在使用socket进行网络编程时,这一函数十分重要,因为它建立了socket句柄与网络上某个地址的关联.
范例:
bind(SH,$SocketAddress);
connect(SOCKET,NAME)试图与已经调用了accept()函数并等待建立连接的另外一个进程进行对话.
如果成功,则返回真;否则返回假.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);

验证邮箱密码的程序的原码
下面的代码在两种操作系统下对263.net和pop.netease.com两个POP3服务器严格测试,证明是成功的.
第一种:
操作系统:Windows98中文版
WWW服务器:Apache1.3.9forWin
Perl解释器:ActiveStateToolCorp的PerlforWin32,version5.005_03builtforMSWin32-x86-object
第二种:
操作系统:RedHatlinux6.1
WWW服务器: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")
unless$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"不能打开socket:$!";
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语言进行Socket编程的内容,更多相关文章请关注PHP中文网(www.php.cn)! 


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1656
14
Tutorial PHP
1257
29
Tutorial C#
1229
24
Cara menggunakan pengaturcaraan soket dalam Python untuk komunikasi data Cara menggunakan pengaturcaraan soket dalam Python untuk komunikasi data Oct 18, 2023 am 11:06 AM

Tajuk: Pengaturcaraan Soket dan Contoh Kod dalam Python Pengenalan: Dalam era Internet moden, komunikasi data ada di mana-mana. Pengaturcaraan soket dalam Python menyediakan cara yang mudah dan berkesan untuk merealisasikan penghantaran data pada rangkaian. Artikel ini akan memperkenalkan cara menggunakan modul soket Python untuk komunikasi data, dan menyediakan contoh kod khusus untuk membantu pembaca memahami dan menggunakan pengaturcaraan soket dengan lebih baik. 1. Apakah pengaturcaraan soket? Soket, iaitu, soket, adalah pelaksanaan

Bangunkan perangkak web dan alat pengikis data yang cekap menggunakan bahasa Vue.js dan Perl Bangunkan perangkak web dan alat pengikis data yang cekap menggunakan bahasa Vue.js dan Perl Jul 31, 2023 pm 06:43 PM

Gunakan bahasa Vue.js dan Perl untuk membangunkan perangkak web dan alat mengikis data yang cekap Dalam beberapa tahun kebelakangan ini, dengan perkembangan pesat Internet dan kepentingan data yang semakin meningkat, permintaan untuk perangkak web dan alat pengikis data juga telah meningkat. Dalam konteks ini, adalah pilihan yang baik untuk menggabungkan bahasa Vue.js dan Perl untuk membangunkan perangkak web dan alat mengikis data yang cekap. Artikel ini akan memperkenalkan cara membangunkan alat sedemikian menggunakan bahasa Vue.js dan Perl, serta melampirkan contoh kod yang sepadan. 1. Pengenalan kepada bahasa Vue.js dan Perl

Bagaimana untuk menggunakan C++ untuk pengaturcaraan rangkaian? Bagaimana untuk menggunakan C++ untuk pengaturcaraan rangkaian? Nov 03, 2023 am 11:10 AM

Dengan perkembangan Internet, pengaturcaraan rangkaian semakin menjadi bahagian penting dalam sains komputer. Sebagai bahasa pengaturcaraan yang berkuasa, C++ juga menyediakan banyak sokongan untuk pengaturcaraan rangkaian. Artikel ini akan memperkenalkan cara menggunakan C++ untuk pengaturcaraan rangkaian. Gambaran Keseluruhan Pengaturcaraan Rangkaian Pengaturcaraan rangkaian ialah proses menulis atur cara untuk komunikasi menggunakan rangkaian komputer. Pengaturcaraan rangkaian memerlukan penggunaan protokol rangkaian (seperti TCP/IP) untuk penghantaran data. Dalam pengaturcaraan rangkaian, terdapat dua peranan utama: klien dan pelayan. Pelanggan merujuk kepada program yang memulakan permintaan, dan

Bagaimana untuk menggunakan fungsi pengaturcaraan soket PHP? Bagaimana untuk menggunakan fungsi pengaturcaraan soket PHP? Jun 03, 2023 pm 09:51 PM

PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web dan menyokong banyak aplikasi pengaturcaraan rangkaian. Antaranya, pengaturcaraan Socket ialah cara yang biasa digunakan untuk melaksanakan komunikasi rangkaian Ia membolehkan program melaksanakan komunikasi antara proses dan menghantar data melalui rangkaian. Artikel ini akan memperkenalkan cara menggunakan fungsi pengaturcaraan Socket dalam PHP. 1. Pengenalan kepada Socket Programming Socket (soket) ialah konsep abstrak yang mewakili port terbuka dalam komunikasi rangkaian Sesuatu proses perlu disambungkan ke port ini untuk berkomunikasi dengan proses lain.

Amalan terbaik untuk membina aplikasi web berprestasi tinggi menggunakan Python dan Perl Amalan terbaik untuk membina aplikasi web berprestasi tinggi menggunakan Python dan Perl Jun 17, 2023 am 08:09 AM

Dalam era digital hari ini, aplikasi web menjadi semakin biasa, menjadikan kehidupan kita lebih mudah dan cekap. Python dan Perl ialah dua bahasa pengaturcaraan yang digunakan secara meluas, kedua-duanya sesuai untuk membina aplikasi web. Walau bagaimanapun, untuk membina aplikasi web berprestasi tinggi, anda perlu menguasai beberapa amalan terbaik Artikel ini akan memperkenalkan beberapa amalan terbaik untuk membina aplikasi web berprestasi tinggi dalam Python dan Perl. Memilih rangka kerja web yang betul Memilih rangka kerja web yang sesuai adalah langkah kritikal dalam mereka bentuk aplikasi web berprestasi tinggi.

Membangunkan skrip sistem dan alatan automasi menggunakan bahasa Vue.js dan Perl Membangunkan skrip sistem dan alatan automasi menggunakan bahasa Vue.js dan Perl Jul 29, 2023 pm 04:57 PM

Menggunakan bahasa Vue.js dan Perl untuk membangunkan skrip sistem dan alat automasi Dalam persekitaran pembangunan perisian semasa, skrip sistem dan alat automasi telah menjadi alat penting bagi pembangun untuk menjimatkan masa dan meningkatkan kecekapan. Dalam artikel ini, kami akan memperkenalkan cara untuk membangunkan skrip sistem dan alatan automasi menggunakan bahasa Vue.js dan Perl serta menyediakan beberapa contoh kod. Vue.js ialah rangka kerja JavaScript yang popular untuk membina antara muka pengguna. Ia menggunakan pendekatan pembangunan berasaskan komponen, membolehkan pembangun

Panduan Pemula untuk PHP: Pengaturcaraan Soket Panduan Pemula untuk PHP: Pengaturcaraan Soket May 21, 2023 am 08:31 AM

Panduan Permulaan PHP: Pengaturcaraan Soket Pengaturcaraan soket merujuk kepada cara berkomunikasi pada rangkaian komputer Melalui pengaturcaraan Socket, kita boleh melaksanakan pelbagai jenis aplikasi rangkaian, seperti bilik sembang, permainan dalam talian, panggilan Internet, dll. Dalam bidang pembangunan Web, pengaturcaraan Socket juga memainkan peranan yang sangat penting, seperti merealisasikan komunikasi masa nyata, mesej push dan fungsi lain Dengan cara ini, kita boleh menjadikan aplikasi Web lebih berwarna dan interaktif. PHP adalah sangat

Pengaturcaraan soket dan penulisan sebelah pelayan dalam bahasa Go Pengaturcaraan soket dan penulisan sebelah pelayan dalam bahasa Go May 31, 2023 pm 11:40 PM

Dengan perkembangan pesat Internet, lebih banyak aplikasi memerlukan komunikasi rangkaian, dan pengaturcaraan soket telah menjadi kaedah pengaturcaraan yang penting. Bahasa Go ialah bahasa pengaturcaraan yang telah menarik banyak perhatian sejak beberapa tahun kebelakangan ini, dan ia juga mempunyai kelebihan unik dalam bidang pengaturcaraan rangkaian. Artikel ini akan memperkenalkan pengaturcaraan soket dalam bahasa Go dan cara menulis program pelayan mudah. 1. Gambaran keseluruhan pengaturcaraan soket Soket ialah lapisan abstraksi yang disediakan antara lapisan aplikasi dan lapisan pengangkutan, yang membolehkan aplikasi berkomunikasi melalui rangkaian.

See all articles