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-11-03 21:01:59

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

简单的socket编程入门示例_C 语言

功能简单实现client输入内容发送到server端输出 复制代码 代码如下: #include <stdio.h>#include <iostream>#include <winsock2.h>#pragma comment(lib, "ws2_32.lib")using namespace std;int main() { // 初始化 Winsock. WSADATA wsaData; int iResult = WSAStartup( MAK

C语言socket编程开发应用示例_C 语言

实现步骤: 1. Server端 复制代码 代码如下: #include <stdio.h>                   //用于printf等函数的调用#include <winsock2.h>                //Socket的函数调用 #pragma comment (lib, "ws2_32")      //C语言引用其他类库时,除了.h文件外,还要加入对应的lib文件(这个不同于C#) 复制代码 代码如下: int main()

php使用socket编程示例

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

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

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

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

Python中利用原始套接字进行网络编程的示例

  这篇文章主要介绍了Python中利用原始套接字进行网络编程的示例,使用sock_raw接受和发送数据包可以避开网络协议的诸多限制,需要的朋友可以参考下 在实验中需要自己构造单独的HTTP数据报文,而使用SOCK_STREAM进行发送数据包,需要进行完整的TCP交互. 因此想使用原始套接字进行编程,直接构造数据包,并在IP层进行发送,即采用SOCK_RAW进行数据发送. 使用SOCK_RAW的优势是,可以对数据包进行完整的修改,可以处理IP层上的所有数据包,对各字段进行修改,而不受UDP和TC

读懂Java中的Socket编程(转)

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序.  餐前甜点  Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本.当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限.一旦IO操作对象被打开,那么这个用户进程可以对