이 글의 예제에서는 PHP에서 소켓 생성 및 모니터링 구현 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
다음은 소켓 생성, 소켓 연결 수락, 소켓 작성 및 연결 초기화와 같은 PHP의 소켓 관련 기능의 예를 제공합니다.
$ip="127.0.0.1"; //IP 주소 정의
$port=1000; //포트 정의
$socket=socket_create(af_inet,sock_stream,sol_tcp); //소켓 생성
$bind=socket_bind($socket,$ip,$prot); //소켓 바인딩
$listen=socket_listen($socket); //소켓 듣기
$msg=socket_accept($socket); //소켓 연결 수락
$welcome="php service/n에 오신 것을 환영합니다"; //문자열 정의
소켓_write($msg,$welcome,strlen($welcome))) //소켓 쓰기
소켓_close($socket); //소켓 닫기
*/
$ip="127.0.0.1"; //IP 주소 정의
$port=1000; //포트 정의
$socket=socket_create(af_inet,sock_stream,sol_tcp); //소켓 생성
소켓_clear_error($socket); //소켓 오류 메시지 지우기
소켓_close($socket); //소켓 닫기
/*
*/
$sockets=array(); //배열 정의
/*소켓 쌍을 생성하고 배열에 저장*/
if(!socket_create_pair(af_unix,sock_stream,0,$sockets)) //소켓이 성공적으로 생성되지 않은 경우
{
echo 소켓_strerror(socket_last_error()); //오류 메시지 출력
}
/*생성된 소켓을 이용해 정보를 보내고 받습니다*/
if(!socket_write($sockets[0],"abcdef123n",strlen("abcdef123n"))) //소켓 쓰기가 실패한 경우
{
cho 소켓_strerror(socket_last_error()); //오류 메시지 출력
}
if(!$data=socket_read($sockets[1],strlen("abcdef123n"),php_binary_read)) //정보 읽기에 실패한 경우
{
echo 소켓_strerror(socket_last_error()); //오류 메시지 출력
}
var_dump($data); //소켓 데이터 정보 출력
/*소켓 닫기*/
소켓_close($sockets[0]); //소켓1 닫기
소켓_close($sockets[1]); //소켓2 닫기
/*
*/
$ip="127.0.0.1"; //IP 주소 정의
$port=1000; //포트 정의
$socket=socket_create(af_inet,sock_stream,sol_tcp); //소켓 생성
소켓_set_nonblock($socket); //잠금되지 않은 상태로 설정
소켓_connect($socket,$ip,$port); //연결 초기화
소켓_set_block($sock); //소켓 잠금
스위치(socket_select($r=array($socket),$w=array($socket),$f=array($socket),5))
{
사례 2:
echo "연결이 거부되었습니다! n";
휴식
사례 1:
echo "n번 연결 성공";
휴식
사례 0:
echo "연결 시간 초과 n"
휴식
}
/*
*/
/*다음 코드는 소켓 수신 클래스를 정의합니다*/
클래스 소켓리스너는 소켓을 확장합니다
{
function __construct($port=null) //__construct 메소드 정의
{
$this->stream=@socket_create_listen($port?$port:port); //연결을 허용할 포트를 엽니다.
}
function isactive() //isactive 메소드 정의
{
If($this->stream) //연결이 있는 경우
{
사실을 반환;
}
else else //연결이 없습니다
{
거짓을 반환;
}
}
}
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.