php tcp socket 学习汇总
2014-12-08 20:51
603 查看
推荐实例:PHP socket
深入浅出讲解:php的socket通信
基于socket.io的实时消息推送
php socket通信(tcp/udp)
PHP向socket服务器收发数据
php实现socket
PHP在WIN下操作socket最好用命令行运行程序,至于为什么,自己可以体会下。
![](http://pic002.cnblogs.com/images/2011/332739/2011102813345262.png)
首先运行php + 程序的路径,出现了这个提示表示你的php没有加入环境变量path下面。
然后找到你的php安装目录,我的是这个
![](http://pic002.cnblogs.com/images/2011/332739/2011102813365792.png)
然后复制上面的路径,右键点击我的电脑-属性-高级-环境变量,添加到环境变量中,注意有个;号,看下图
![](http://pic002.cnblogs.com/images/2011/332739/2011102813402311.png)
然后确定,保存。再次运行cmd,OK成功了。不会出现那个提示了。
接下来就是主题了,先放代码
这是socket的服务端代码。然后运行cmd,注意是自己的程序存放路径啊。
![](http://pic002.cnblogs.com/images/2011/332739/2011102813441135.png)
没有反映,对现在服务端的程序已经开始运行,端口已经开始监听了。运行netstat -ano可以查看端口情况,我的是1935端口
![](http://pic002.cnblogs.com/images/2011/332739/2011102813455577.png)
看,端口已经处于LISTENING状态了。接下来我们只要运行客户端程序即可连接上。上代码
![](http://pic002.cnblogs.com/images/2011/332739/2011102813474969.png)
至此客户端已经连接上服务端了。这只是个小例子,很多东西知道原理其他就好做了。
深入浅出讲解:php的socket通信
基于socket.io的实时消息推送
php socket通信(tcp/udp)
PHP向socket服务器收发数据
php实现socket
PHP socket
环境:windowsPHP在WIN下操作socket最好用命令行运行程序,至于为什么,自己可以体会下。
![](http://pic002.cnblogs.com/images/2011/332739/2011102813345262.png)
首先运行php + 程序的路径,出现了这个提示表示你的php没有加入环境变量path下面。
然后找到你的php安装目录,我的是这个
![](http://pic002.cnblogs.com/images/2011/332739/2011102813365792.png)
然后复制上面的路径,右键点击我的电脑-属性-高级-环境变量,添加到环境变量中,注意有个;号,看下图
![](http://pic002.cnblogs.com/images/2011/332739/2011102813402311.png)
然后确定,保存。再次运行cmd,OK成功了。不会出现那个提示了。
接下来就是主题了,先放代码
<?php //确保在连接客户端时不会超时 set_time_limit(0); $ip = '127.0.0.1'; $port = 1935; /* +------------------------------- * @socket通信整个过程 +------------------------------- * @socket_create * @socket_bind * @socket_listen * @socket_accept * @socket_read * @socket_write * @socket_close +-------------------------------- */ /*---------------- 以下操作都是手册上的 -------------------*/ if(($sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) < 0) { echo "socket_create() 失败的原因是:".socket_strerror($sock)."\n"; } if(($ret = socket_bind($sock,$ip,$port)) < 0) { echo "socket_bind() 失败的原因是:".socket_strerror($ret)."\n"; } if(($ret = socket_listen($sock,4)) < 0) { echo "socket_listen() 失败的原因是:".socket_strerror($ret)."\n"; } $count = 0; do { if (($msgsock = socket_accept($sock)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n"; break; } else { //发到客户端 $msg ="测试成功!\n"; socket_write($msgsock, $msg, strlen($msg)); echo "测试成功了啊\n"; $buf = socket_read($msgsock,8192); $talkback = "收到的信息:$buf\n"; echo $talkback; if(++$count >= 5){ break; }; } //echo $buf; socket_close($msgsock); } while (true); socket_close($sock); ?>
这是socket的服务端代码。然后运行cmd,注意是自己的程序存放路径啊。
![](http://pic002.cnblogs.com/images/2011/332739/2011102813441135.png)
没有反映,对现在服务端的程序已经开始运行,端口已经开始监听了。运行netstat -ano可以查看端口情况,我的是1935端口
![](http://pic002.cnblogs.com/images/2011/332739/2011102813455577.png)
看,端口已经处于LISTENING状态了。接下来我们只要运行客户端程序即可连接上。上代码
<?php error_reporting(E_ALL); set_time_limit(0); echo "<h2>TCP/IP Connection</h2>\n"; $port = 1935; $ip = "127.0.0.1"; /* +------------------------------- * @socket连接整个过程 +------------------------------- * @socket_create * @socket_connect * @socket_write * @socket_read * @socket_close +-------------------------------- */ $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket < 0) { echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n"; }else { echo "OK.\n"; } echo "试图连接 '$ip' 端口 '$port'...\n"; $result = socket_connect($socket, $ip, $port); if ($result < 0) { echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n"; }else { echo "连接OK\n"; } $in = "Ho\r\n"; $in .= "first blood\r\n"; $out = ''; if(!socket_write($socket, $in, strlen($in))) { echo "socket_write() failed: reason: " . socket_strerror($socket) . "\n"; }else { echo "发送到服务器信息成功!\n"; echo "发送的内容为:<font color='red'>$in</font> <br>"; } while($out = socket_read($socket, 8192)) { echo "接收服务器回传信息成功!\n"; echo "接受的内容为:",$out; } echo "关闭SOCKET...\n"; socket_close($socket); echo "关闭OK\n"; ?>
![](http://pic002.cnblogs.com/images/2011/332739/2011102813474969.png)
至此客户端已经连接上服务端了。这只是个小例子,很多东西知道原理其他就好做了。
相关文章推荐
- web开发 php之 socket(TCP/IP)原理 学习、理解和应用
- PHP学习资料汇总
- 学习动态网页PHP技术常见问题汇总解答
- 黑马程序员_Socket学习日记之TCP的讲解与应用
- 韩顺平_php从入门到精通_视频教程_第9讲_多标签汇总②_线包字效果_测试题_学习笔记_源代码图解_PPT文档整理
- 韩顺平_php从入门到精通_视频教程_第8讲_多媒体页面_标签汇总①_地图映射_学习笔记_源代码图解_PPT文档整理
- Socket网络编程学习笔记(4):TCP消息边界处理
- 【网络编程学习笔记01】Socket套接字编程(TCP/IP)
- java学习——java 面向 Socket 操作,TCP 和 UDP 示例
- TCP/IP socket 编程 学习笔记
- Linux TCP/IP 协议栈学习(3)—— Linux Socket (Part I)
- TcpSocket编程与Event编写学习的好例子
- 转:socket 知识汇总学习
- php socket Tcp连接例子
- Win Socket 学习 (Tcp和Udp)
- P2P聊天程序,学习TcpListener/TcpClient/Socket用法
- System.Net.Socket Tcp 学习笔记(一)
- PHP学习资料汇总与网址
- Php-fpm TcpSocket vs UnixSocket
- Linux TCP/IP 协议栈学习(4)—— Linux Socket (Part II)