PHP Socket配置以及实例

原创 2012年03月30日 17:30:23

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 = "收到的信息:$buf\n";
        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 "连接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";
?>

 

侦听
# /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

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用PHP创建SOCKET服务

最近好奇,接触接触PHP的socket编程,发现还是很好玩儿的。下面贴出来demo源码跟大家分享 Server.php ...

【socket】用PHP的socket实现客户端到服务端的通信

一、client.php客户端:

CentOS 配置PHP支持socket扩展

PHP有很多扩展功能,我们在初次安装的时候并没有安装某些扩展,可能在使用的过程中,又需要用到这些扩展。php提供了一个phpize工具供我们安装需要的扩展。 下面以安装socket扩展来介绍ph...

php添加socket的扩展

767  cd addtiontools/   768  ls   769  cd php-5.3.16/ext/sockets/   770  ls   771  /usr/local/ph...

谈谈php中使用websocket-实例

在PHP中,开发者需要考虑的东西比较多,从socket的连接、建立、绑定、监听等都需要开发者自己去操作完成,对于初学者来说,难度方面也挺大的,所以本文的思路如下: 1、socket协议的简介 ...

PHP Socket实例

  • 2011年07月07日 11:00
  • 3KB
  • 下载

php socket讲解与实例

在这一章里你将了解到迷人而又让人容易糊涂的套接字(Sockets)。Sockets在PHP中是没有充分利用的功能。今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用socket进行连接,服务...

PHP-Socket服务端客户端发送接收通信实例详解

Socket介绍 什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。 在Inter...
  • ccyyss
  • ccyyss
  • 2016年12月14日 09:45
  • 430

php socket服务端和客户端实例

server.php
  • nuli888
  • nuli888
  • 2016年07月09日 22:30
  • 5174

PHP socket 网络编程实例

PHP socket 网络编程实例
  • samxx8
  • samxx8
  • 2011年03月18日 09:09
  • 791
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP Socket配置以及实例
举报原因:
原因补充:

(最多只允许输入30个字)