네트워크 프로그래밍은 신비롭고 복잡한 예술이지만 매우 흥미롭습니다. Perl 언어는 풍부한 TCP/ip 네트워크 기능을 제공하며, 이 기능은 모두
C 언어의 소켓 라이브러리 기능에서 직접 파생됩니다.
Perl 언어와 C 언어의 소켓 라이브러리 기능은 유사합니다. 스타일과 사용법이 동일하므로 소켓 프로그래밍에는 Perl 언어를 사용하고 물론
소켓 프로그래밍에는 C 언어도 사용합니다.
다음은 Perl 언어의 관련 소켓 라이브러리 함수 목록입니다.
함수 프로토타입 사용 지침
accept(NEWSOCKET,GENERICSOCKET)는 요청된 소켓 연결을 수락합니다. 성공하면 네트워크 주소를 압축 형식으로 반환하고, 그렇지 않으면 FALSE를 반환합니다.
예:
if(!$ Connect=accept(NEW,HANDLE))
{
die "Connectionfailed:$!
";
}
bind(SOCKET,NAME)는 NAME과 SOCKET 사이의 바인딩을 설정합니다. 여기서 NAME 올바른 소켓 유형에 해당하는 압축된 주소여야 합니다.
성공하면 true를 반환하고 그렇지 않으면 false를 반환합니다.
네트워크 프로그래밍에 소켓을 사용할 때 이 함수는 소켓 핸들 간의 연결을 설정하므로 매우 중요합니다. 및 네트워크의 주소.
예:
bind(SH,$SocketAddress);
connect(SOCKET,NAME)는 accept() 함수를 호출하고 대기 중인 다른 프로세스와 통신을 시도합니다.
성공하면 True를 반환하고, 그렇지 않으면 false를 반환합니다. NAME은 올바른 SOCKET 핸들 유형에 해당하는 압축 주소여야 합니다.
예:
connect(SOCK,$address)||die " Can'tconnectwithremotehost:$!
";
gethostbyaddr(ADDRESS,TYPE)은 압축된 네트워크 주소를 사람이 읽고 이해하기 쉬운 이름과 주소로 변환합니다.
IP 주소만 호스트가 알려진 경우 이 함수를 사용하여 호스트 이름 및 기타 네트워크 정보를 쿼리할 수 있습니다. 다음 정보가 포함된 목록을 반환합니다:
($name,$alias,$addrtype,$length,$address)
여기서 $name은 IP 주소에 해당하는 호스트 이름이고, $alias는 $name Alias에 해당하는 다른 이름이고, $addrtype은 네트워크 주소 유형, $length는
주소의 길이, $address입니다.
예:
$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);
이메일 비밀번호 확인 프로그램의 원본 코드
다음 코드는 두 개의 운영 체제 하에서 두 개의 POP3 서버 263.net 및 pop.netease.com에서 엄격하게 테스트되었으며 성공적인 것으로 입증되었습니다.
첫 번째 종류:
운영 체제: Windows98 중국어 버전
WWW 서버 : Apache1.3.9forWin
Perl 인터프리터: ActiveStateToolCorp's PerlforWin32, version5.005_03builtforMSWin32-x86-object
두 번째 유형:
운영 체제: RedHatlinux6.1
WWW 서버: Apache1.3.6forLinux
Perl 인터프리터: version5.005_03buildfori386-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
";
인쇄"POP3
";
인쇄 "
";
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
{
인쇄"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 중국어 홈페이지(www.php.cn)를 참고해주세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구