ANMPP是一款Mac下面的Web服务包,它包含Apache、MySQL、PHP以及phpMyAdmin,使用ANMPP可以非常方便的搭建本地的网站环境,进行程序开发、调试以及测试等等。
ANMPP中集成的PHP版本是5.6.11,而且也提供了PHP的socket拓展,可以非常方便的实现Socket编程。下面举例说明如何使用ANMPP的PHP Socket。
//创建一个socket套接字 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if(!$socket){ die('create fail'); } //绑定ip和端口号 if(!socket_bind($socket, '127.0.0.1', 8888)){ die('bind fail'); } //开始监听端口 if(!socket_listen($socket)){ die('listen fail'); } //等待客户端连接 $client = socket_accept($socket); if(!$client){ die('accept fail'); } //循环接收客户端的数据 while(true){ $data = socket_read($client, 1024); if(!$data){ break; } //处理客户端数据 echo $data."\n"; //给客户端发送数据 socket_write($client, 'server received '.$data, strlen('server received '.$data)); } //关闭socket socket_close($socket);
以上代码创建了一个TCP的Socket服务器,监听本地8888端口,接受客户端连接,并循环读取客户端发送的数据并且返回响应数据给客户端。下面简述一下代码的逻辑:
- socket_create()函数创建一个socket套接字。
- socket_bind()函数将套接字绑定到指定的ip地址和端口号。
- socket_listen()函数开始监听端口。
- socket_accept()函数接收客户端的连接,并返回一个新的套接字用于和该客户端进行通信。
- 循环读取客户端发送的数据并响应。
- socket_close()函数关闭socket。
可以看出,ANMPP集成的PHP Socket拓展非常方便实用,而且也提供了很多函数可以方便我们编写Socket程序,例如socket_connect()函数用于连接到服务器、socket_select()函数用于监听多个Socket、socket_send()函数用于发送数据等等。
因此,如果我们需要实现一个Socket服务器或者客户端程序,使用ANMPP的PHP Socket拓展是非常方便快捷的,它具有跨平台、易用性高等优势。