`
zhengdl126
  • 浏览: 2542689 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

php+sockets

    博客分类:
  • php
阅读更多

--------------------------------------------------------------------开启端口建立通信

 

server.php

 

<?php
//确保在连接客户端时不会超时
set_time_limit (0 );

//设置IP和端口号
$address = '127.0.0.1' ;
$port = 2003 ;    //调试的时候,可以多换端口来测试程序!

//创建一个SOCKET
if (($sock = socket_create(AF_INET , SOCK_STREAM , SOL_TCP ))< 0 )
{
echo "socket_create() 失败的原因是:" . socket_strerror ($sock ). "<br>" ;
}

//绑定到socket端口
if (($ret = socket_bind ($sock , $address , $port ))< 0 )
{
echo "socket_bind() 失败的原因是:" . socket_strerror ($ret ). "<br>" ;
}

//开始监听
if (($ret = socket_listen ($sock , 4 ))< 0 )
{
echo "socket_listen() 失败的原因是:" . socket_strerror ($ret ). "<br>" ;
}

do {
if (($msgsock = socket_accept ($sock )) < 0 )
{
echo "socket_accept() failed: reason: " . socket_strerror ($msgsock ) . " \n " ;
break ;
}

//发到客户端
$msg = "<font color=red>欢迎进入服务器!</font><br>" ;
socket_write ($msgsock , $msg , strlen ($msg ));

echo "读取客户端发来的信息<br>" ;
$buf = socket_read ($msgsock , 8192 );


$talkback = "收到的信息: $buf <br>" ;
echo $talkback ;
/* if(socket_write($msgsock, $talkback, strlen($talkback))<0)
     {
      echo "socket_write() failed: reason: " . socket_strerror($msgsock) . "\n";
     }
     else
     {
      echo "发送成功";
     }*/


//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 " ;

$service_port = 2003 ;
$address = "127.0.0.1" ;


$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 "试图连接 ' $address ' 端口 ' $service_port '...<br>" ;
$result = socket_connect ($socket , $address , $service_port );
if ($result < 0 )
{
echo "socket_connect() failed. \n Reason: ( $result ) " . socket_strerror ($result ) . " \n " ;
}
else
{
echo "连接OK<br>" ;
}

//sleep(100);


$in = "Hello \r\n " ;
$in .= "我是Chester \r\n " ;
$out = '' ;
$out1 = '' ;


if (!socket_write($socket , $in , strlen ($in )))
{
echo "socket_write() failed: reason: " . socket_strerror ($socket ) . " \n " ;
}
else
{
echo "发送到服务器信息成功!<br>" ;
echo "发送的内容为:<font color='red'> $in </font> <br>" ;
}

while ($out = socket_read ($socket , 8192 ))
{
echo "接收服务器回传信息成功!<br>" ;
echo "接受的内容为:" , $out ;
}


echo "关闭SOCKET...<br>" ;
socket_close ($socket );
echo "关闭OK<br>" ;
?>

 

 

 

分享到:
评论

相关推荐

    linux下开启php的sockets扩展支持实例

    ### Linux 下开启 PHP 的 Sockets 扩展支持详解 #### 一、引言 在现代 Web 开发中,PHP 作为一种流行的服务器端脚本语言,被广泛应用于网站开发。随着互联网技术的发展,实时通信的需求日益增加,而 PHP 的 Sockets...

    centos源码安装php-8.1.1+phpredis-4.2.0

    这些选项用于启用一些 PHP 扩展,例如 opcache、fpm、sockets、mysqlnd、mbstring、bcmath、gd、jpeg、freetype、curl 和 openssl 等。 配置 PHP 复制 PHP 配置文件: ``` cp ...

    独立服务器PHP+mysql配置文档

    【独立服务器PHP+mysql配置文档】是一份详细指导如何在Windows 2008服务器上配置IIS7、FTP、PHP和MySQL环境的教程。以下是关键步骤和知识点的概述: 一、系统约定与环境准备 1. 环境软件的下载和安装位置:如X:\...

    FreeBSD7.0编译安装nginx+php+mysql[定义].pdf

    ./configure --prefix=/usr/local/vhost/php --with-mysql=/usr/local/vhost/mysql --enable-fastcgi --enable-sockets --enable-ftp --enable-zip --enable-mbstring --enable-mbregex --enable-calendar --with-...

    ThinkPHP5+WebSocket+MySQL实现聊天室

    在PHP环境中,需要开启PHP的sockets扩展。这通常涉及到修改php.ini文件,找到`extension=sockets`并去掉前面的分号(;),然后重启服务器使改动生效。接下来,通过运行`php -m`命令检查sockets扩展是否已经成功加载...

    IIS6.0_PHP+MySQL+phpMyAdmin+ZendOptimizer 详细手动配置教程

    - `extension=php_sockets.dll` 3. **安装MySQL** - 安装mysql-essential-5.1.48-win32.msi,按照向导设置数据库服务和用户名/密码。 4. **配置IIS以支持PHP(通过FastCGI)** - 安装fcgisetup_1.5_x86_rtw.msi...

    apache+php+gd2+gd2依赖包+openssl

    jpegsrc.v6b.tar.gz libpng-1.2.12.tar.gz freetype-2.3.4.tar.gz gd-2.0.34.tar.gz httpd-2.2.21.tar.gz openssl-0.9.8k.tar.gz php-5.2.17.tar.gz

    CentOS7下源码编译配置Apache2.4+MySQL5.6+PHP71

    在本文中,我们将深入探讨如何在CentOS 7操作系统上通过源代码编译来安装Apache 2.4、MySQL 5.6和PHP 7.1。这个过程对于那些希望自定义软件配置或在没有预装包的环境中部署这些服务的系统管理员来...prefix=/usr/local/...

    php+apache+phpMyAdmin配置说明

    启用需要的扩展,例如:`extension=php_dbase.dll`、`extension=php_gd2.dll`、`extension=php_mbstring.dll`、`extension=php_mysql.dll`、`extension=php_mysqli.dll` 和 `extension=php_sockets.dll`。 - 更新 `...

    Linux下mysql+PHP+nginx的搭建(已测试)

    在Linux系统中搭建一个基于MySQL、PHP和Nginx的环境是常见的Web开发配置,这种组合通常被称为LAMP(Linux, Apache, MySQL, PHP)架构,但在本例中使用的是Nginx代替Apache,所以是LNMP(Linux, Nginx, MySQL, PHP)...

    php5.2.17 windows dll 文件

    php_sockets.dll php_sqlite.dll php_sqlsrv.dll php_sybase_ct.dll php_tidy.dll php_xmlrpc.dll php_xsl.dll php_zip.dll xcache.dll xdebug....

    在RedHat_AS5.0下搭建Apache+MySQL+PHP+Tomcat+JSP平台

    -with-apxs2=/usr/local/php/bin/apxs --with-libxml-dir=/usr/local/lib --with-mysql=/var/lib/mysql --with-zlib --with-zlib-dir=/usr/local/lib --enable-soap --enable-sockets` - `make` 和 `make install` ...

    用php+snmp实现服务器监控程序.docx

    cp /opt/php527/lib/php/extensions/no-debug-non-zts-20060613/sockets.so /opt/php527/etc/ cp /opt/php527/lib/php/extensions/no-debug-non-zts-20060613/snmp.so /opt/php527/etc/ ``` 修改`php.ini`文件:...

    CentOS+Nginx+PHP+MySQL配置详解.pdf

    -enable-pcntl --enable-soap --enable-sockets --enable-tokenizer=shared --enable-wddx=shared --enable-zip=shared --with-pear #make && make install 八、配置 PHP 在安装完成 PHP 之后,我们需要配置 PHP。...

    PHPMailer库发送邮件支持ssl方式

    阿里云25端口被封印,SMTP 25端口不好使用 需开启PHP扩展:sockets、openssl等,自行查询 此程序使用PHP7与PHPMailer 6.1.4 实现邮件的发送

    php+jsp[文].pdf

    - 激活所需的扩展,例如`php_zip.dll`, `php_gd2.dll`, `php_sockets.dll`, `php_mysql.dll`, `php_mbstring.dll`, `php_mcrypt.dll`等,移除其前的分号(;)。 - 配置`session.save_path`为临时文件存储路径,如`...

    centos linux+apache+mysql+php+memcache+zend

    ### LAMP环境搭建详解:CentOS Linux + Apache + MySQL + PHP + Memcache + Zend #### 一、引言 LAMP(Linux + Apache + MySQL + PHP)是一种常用的Web服务器架构,广泛应用于各种网站和应用程序...path=/usr/local/...

    dll包大全(PHP扩展)

    php_bz2.dll php_curl php_eaccelerator_ts php_enchant php_exif php_fileinfo php_gd2 php_gettext php_gmp php_soap php_sockets

Global site tag (gtag.js) - Google Analytics