php使用socket编程示例

 这篇文章主要介绍了php使用socket编程的示例,大家参考使用吧

2个php测试文件
server.php
 
代码如下:
<?php
//phpinfo();
//确保在连接客户端时不会超时
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 = "收到的信息:$bufn";
        echo $talkback;
 
        if(++$count >= 5){
            break;
        };
 
    
    }
    //echo $buf;
    socket_close($msgsock);
 
} while (true);
 
socket_close($sock);
?>
 
 
 
 
client.php
代码如下:
<?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 "连接OKn";
}
 
$in = "Horn";
$in .= "first bloodrn";
$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 "关闭OKn";
?>
 
 
 
侦听
 
 
代码如下:
# /usr/local/php/bin/php  /usr/local/apache2/htdocs/server.php
 

 
  
 
 
请求
 
代码如下:
# /usr/local/php/bin/php  /usr/local/apache2/htdocs/client.php
 

 
 
默认PHP是没有开启Socket的
 
代码如下:
#cd ./ext/sockets/
# /usr/local/php/bin/phpize
# ./configure --enable-sockets --with-php-config=/usr/local/php/bin/php-config
# make
# make install
 
 
php.ini修改配置
增加
代码如下:
extension=sockets.so
 
 
重启apache
代码如下:
# /usr/local/apache2/bin/apachectl restart
 
 
Windows下的配置
修改php.ini
代码如下:
extension=php_sockets.dll
 
 
重启apache
cmd下起2个
php的安装目录
 
 
代码如下:
C:/php/php.exe   F:web/server.php
C:/php/php.exe   F:web/client.php
 

时间: 2024-09-22 00:49:06

php使用socket编程示例的相关文章

php使用socket编程示例_实用技巧

2个php测试文件server.php 复制代码 代码如下: <?php//phpinfo();//确保在连接客户端时不会超时set_time_limit(0); $ip = '127.0.0.1';$port = 1935; /* +------------------------------- *    @socket通信整个过程 +------------------------------- *    @socket_create *    @socket_bind *    @sock

Linux网络编程之UDP Socket程序示例_C 语言

在网络传输协议中,TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接.TCP有一种"重传确认"机制,即接收端收到数据后要发出一个肯定确认的信号,发送端如果收到接收端肯定确认的信号,就会继续发送其他的数据,如果没有,它就会重新发送. 相对而言,UDP协议则是一种无连接的,不可靠的数据报(SOCK_DGRAM)传输服务.使用UDP套接口不用建立连接,服务端在调用socket()生成一个套接字并调用bind()绑定端口后就可

php使用socket编程的示例

 这篇文章主要介绍了php使用socket编程的示例,大家参考使用吧 2个php测试文件 server.php     代码如下: <?php //phpinfo(); //确保在连接客户端时不会超时 set_time_limit(0);   $ip = '127.0.0.1'; $port = 1935;   /*  +-------------------------------  *    @socket通信整个过程  +-------------------------------  *

.NET中Socket编程的简单示例

编程|示例 以下示例程序实现简单的Socket通信,可以开多个客户端.本机测试通过,未做联机测试. Server: using System.Net; using System.Net.Sockets; using System.Threading; using System.Collections; namespace MySocketServer1 {     public partial class Form1 : Form     {         private IPAddress

Python Socket 编程——聊天室示例程序

原文:Python Socket 编程--聊天室示例程序 上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和客户端的代码了解基本的 Python Socket 编程模型.本文再通过一个例子来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的例子,就是允许多个人同时一起聊天,每个人发送的消息所有人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.如下图: 图来自:http://www.ibm.com/de

java网络编程之socket网络编程示例(服务器端/客户端)_java

Java为TCP协议提供了两个类,分别在客户端编程和服务器端编程中使用它们.在应用程序开始通信之前,需要先创建一个连接,由客户端程序发起:而服务器端的程序需要一直监听着主机的特定端口号,等待客户端的连接.在客户端中我们只需要使用Socket实例,而服务端要同时处理ServerSocket实例和Socket实例;二者并且都使用OutputStream和InpuStream来发送和接收数据. 学习一种知识最好的方式就是使用它,通过前面的笔记,我们已经知道如何获取主机的地址信息,现在我们通过一个简单的

Socket编程指南及示例程序

例子代码就在我的博客中,包括六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具工程,和此小工具的所有运行时库.资源和执行程序.代码的压缩包位置是http://www.blogjava.net/Files/wxb_nudt/socket_src.rar. 1         前言 在一些常用的编程技术中,Socket网络编程可以说是最简单的一种.而且Socket编程需要的基础知识很少,适合初学者学习网络编程.目前支持网络传输的技术.语言和工具繁多,但是大部分都是基于Socke

续实例解析SOCKET编程模型之异步通信篇(上)

编程|异步 .NET 框架的 Socket 类实际上是 Winsock32 API 提供的套接字服务的托管代码版本.其中Socket 类为网络通信提供了一套丰富的方法和属性,大多数情况下,Socket 类方法只是将数据封送到它们的本机Win32 副本中并处理任何必要的安全检查.Socket 类允许使用 ProtocolType 枚举中所列出的任何一种协议执行异步和同步数据传输.Socket 类遵循异步方法的 .NET Framework 命名模式:例如,同步 Receive 方法对应于异步 Be

Python socket编程实例详解

  本文实例形式较为详细的讲述了Python socket编程.分享给大家供大家参考.具体如下: 复制代码 代码如下: sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 上面的代码创建了一个socket对象.type参数代表套接字类型,可为SOCK_STREAM(流套接字)和SOCK_DGRAM(数据报套接字).AF_INET表示创建的是ip v4的类型. 复制代码 代码如下: socket(address_family,type,pro