> 백엔드 개발 > PHP 튜토리얼 > 소켓을 기반으로 클라이언트와 서버 간 통신 기능을 구현하는 PHP 방식

소켓을 기반으로 클라이언트와 서버 간 통신 기능을 구현하는 PHP 방식

墨辰丷
풀어 주다: 2023-03-26 21:42:01
원래의
1548명이 탐색했습니다.

이 글에서는 소켓을 기반으로 PHP로 구현한 간단한 클라이언트-서버 통신 기능을 주로 소개합니다. 클라이언트가 보낸 문자열을 서버가 받아 이를 뒤집고 클라이언트에게 반환하는 기능을 구현하는 것이 필요한 친구가 참조할 수 있습니다.

서버 클라이언트:

<?php
  set_time_limit(0);
  $host="localhost";
  $port=1001;
  //创建一个连接
  $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die("cannot create socket\n");
  //绑定socket到端口
  $result=socket_bind($socket,$host,$port) or die("cannot bind port to socket\n");
  //开始监听这个端口
  $result=socket_listen($socket,4) or die("could not set up socket listen\n");
  //接受连接,另一个socket来处理通信
  $msgsock=socket_accept($socket) or die("cannot accept incoming connection\n");
  if($msgsock){
    echo date("Y-m-d H:i:s D a");
  }
  //读取客户端发送过来的信息
  $input=socket_read($msgsock,1024) or die("cannot read input\n");
  $input=trim($input);
  $output=strrev($input)."顺序反过来了吧\n";
  //对接收到的信息进行处理,然后返回到客户端
  socket_write($msgsock,$output,strlen($output)) or die("cannot write");
  //关闭socket连接
  socket_close($msgsock);
  socket_close($socket);
?>
로그인 후 복사


클라이언트:


<?php
  set_time_limit(0);
  $host="localhost";
  $port=1001;
  //创建一个socket
  $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die("cannot create socket\n");
  $conn=socket_connect($socket,$host,$port) or die("cannot connect server\n");
  if($conn){echo "client connect ok!";}
  socket_write($socket,"hello world!") or die("cannot write data\n");
  $buffer=socket_read($socket,1024,PHP_NORMAL_READ);
  if($buffer){
    echo "response was:".$buffer."\n";
  }
  socket_close($socket);
?>
로그인 후 복사

관련 권장 사항:

소켓 구현을 위한 PHP실시간 메시지 푸시 단계에 대한 자세한 설명

WebSocket 통신 사용량 분석

Nginx 안티 구성 인스턴스

을 웹socket

으로 프록시 구성

위 내용은 소켓을 기반으로 클라이언트와 서버 간 통신 기능을 구현하는 PHP 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿