如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
PHP中如何使用socket进行通信PHP中如何使用socket进行通信socket通信的原理在这里就不说了,它的用途还是比较广泛的,我们可以使用socket来做一个API接口出来,也可以使用socket来实现两个程序之间的通信,我们来研究一下在php里面如何实现socket通信。由于socket服务端的代码要监听端口,等待接收请求,所以php在做socket服务的时候需要将php文件运行在CMD里面。如果要使php文件可以在CMD里面运行,则需要进行如下设置:1.添加环境变量,名字为PHP_HOME,值为php文件安装目录下的.exe文件地址,如D:wampbinphpphp5.5.12php.exe2.修改系统变量path的'值在path的值里面添加php安装的目录:如D:wampbinphpphp5.5.12;好了,到这里我们就配置好了环境变量,下一步我们打开CMD,想要在里面运行php文件,比如aaa.php文件,则我们写上这一句话:phpd:wampwwwaaa.php然后按下回车键,好了,我们的php文件在cmd里面运行了,输出了一句:hello这样的话php文件能够成功在cmd里面运行,接下来我们来看一下php怎么实现socket通信。1.php制作的socket服务端主要功能是设置socket通信的IP地址及端口号,监听端口,有客户端连接的话,接收连接请求接收数据,处理并且返回数据。代码如下://确保在连接客户端时不会超时set_time_limit(0);//设置IP和端口号$address="127.0.0.1";$port=2048;//调试的时候,可以多换端口来测试程序!/***创建一个SOCKET*AF_INET=是ipv4如果用ipv6,则参数为AF_INET6*SOCK_STREAM为socket的tcp类型,如果是UDP则使用SOCK_DGRAM*/$sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)ordie("socket_create()失败的原因是:".socket_strerror(socket_last_error())."/n");//阻塞模式socket_set_block($sock)ordie("socket_set_block()失败的原因是:".socket_strerror(socket_last_error())."/n");//绑定到socket端口$result=socket_bind($sock,$address,$port)ordie("socket_bind()失败的原因是:".socket_strerror(socket_last_error())."/n");//开始监听$result=socket_listen($sock,4)ordie("socket_listen()失败的原因是:".socket_strerror(socket_last_error())."/n");echo"OKnBindingthesocketon$address:$port...";echo"OKnNowreadytoacceptconnections.nListeningonthesocket...n";do{//neverstopthedaemon//它接收连接请求并调用一个子连接Socket来处理客户端和服务器间的信息$msgsock=socket_accept($sock)ordie("socket_accept()failed:reason:".socket_strerror(socket_last_error())."/n");//读取客户端数据echo"Readclientdatan";//socket_read函数会一直读取客户端数据,直到遇见n,t或者字符.PHP脚本把这写字符看做是输入的结束符.$buf=socket_read($msgsock,8192);echo"Receivedmsg:$bufn";//数据传送向客户端写入返回结果$msg="welcomen";socket_write($msgsock,$msg,strlen($msg))ordie("socket_write()failed:reason:".socket_strerror(socket_last_error())."/n");//一旦输出被返回到客户端,父/子socket都应通过socket_close($msgsock)函数来终止socket_close($msgsock);}while(true);socket_close($sock);2.调取socket服务的客户端文件客户端依然是要设置好要访问服务器的IP地址及端口号(即