`
zxyskycn
  • 浏览: 50967 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

PHP socket 网络编程实例

    博客分类:
  • Php
阅读更多

一开始对socket不太理解,做起东西很模糊,后来做过定位请求的项目,对socket的理解更清楚了。
贴一下示例代码:

SERVER端

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

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

//创建一个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
error_reporting(E_ALL);
set_time_limit(0);
echo "<h2>TCP/IP Connection</h2>\n";

$service_port = 2009;
$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.\nReason: ($result) " . socket_strerror($result) . "\n";
}
else
{
echo "连接OK<br>";
}

$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>";
?>

 

先运行server.php


再运行client.php



PS:请参看 PHP 手册对应的章节:Sockets

 

分享到:
评论

相关推荐

    php socket编程实例详解

    server/client通信实例 博文链接:https://purpen.iteye.com/blog/770712

    PHP网络编程技术与实践 源码

    第10章 使用Socket编程 10.1 Socket基础 10.2 Socket功能函数 10.3 一个简单的TCP/IP服务器端和客户端实例讲解 10.4 本章小结 第11章 用户登录注册模块 11.1 数据库设计 11.2 最基本的注册模块 11.2.1 页面效果 ...

    php使用socket编程示例

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

    深入浅出php socket编程

    主要介绍了深入浅出php socket编程,本文详细的讲解了socket的相关知识、PHP socket的编程实例行装内容,需要的朋友可以参考下

    基于php socket(fsockopen)的应用实例分析

    fsockopen是对socket客户端代码的封装,该函数中封装了socket_create,socket_connect。服务器端代码:server.php复制代码 代码如下:&lt;?phperror_reporting(E_ALL);set_time_limit(0);$address = ‘127.0.0.1’;$...

    PHP向socket服务器收发数据的方法

    本文实例讲述了PHP向socket服务器收发数据的方法。分享给大家供大家参考。具体如下: 在PHP要向其它程序发送数据,则需要使用到php的socket功能来实例了,下面我们简单看一个实例,代码如下: 复制代码 代码如下:/*...

    深入php socket的讲解与实例分析

    在这一章里你将了解到迷人而又让人容易糊涂的套接字...◆ Socket 基础PHP使用Berkley的socket库来创建它的连接。你可以知道socket只不过是一个数据结构。你使用这个socket数据结构去开始一个客户端和服务器之间的会话

    php socket通信(tcp/udp)实例分析

    本文实例讲述了php socket通信(tcp/udp)方法。分享给大家供大家参考,具体如下: 注意 1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1 2.server.php后台跑起来的时候nohup php server.php &gt; /var/tmp/a.log ...

    php 利用socket发送GET,POST请求的实例代码

    作为php程序员一定会接触http协议,也只有深入了解http协议,编程水平才会更进一步。最近我一直在学习php的关于http的编程,许多东西恍然大悟,受益匪浅。希望分享给大家。本文需要有一定http基础的开发者阅读。  ...

    PHP程序开发范例宝典III

    实例013 Linux下实现PHP支持Socket 20 实例014 Linux下实现PHP支持mysqli扩展技术 21 实例015 开机自动启动Apache服务 21 实例016 开机自动启动MySQL服务 22 实例017 Linux下发布“读者之家”网站 22 1.3...

    PHP基于socket实现的简单客户端和服务端通讯功能示例

    本文实例讲述了PHP基于socket实现的简单客户端和服务端通讯功能。分享给大家供大家参考,具体如下: 服务器端: &lt;?php set_time_limit(0); $host=localhost; $port=1001; //创建一个连接 $socket=socket_...

    PHP高级编程实例:编写守护进程

    很多程序以服务形式存在,他没有终端或UI交互,它可能采用其他方式与其他程序交互,如TCP/UDP Socket, UNIX Socket, fifo。程序一旦启动便进入后台,直到满足条件他便开始处理任务。 3.何时采用守护进程开发应用程序...

    用PHP的socket实现客户端到服务端的通信实例详解

    一、server.php服务端: &lt;?php error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush();...//创建SOCKET ... echo "socket创建失败原因 " . socket_strerror($sock) . "\n"; } if (($ret = so

    PHP多进程之pcntl_fork的实例详解

    在使用这些方向的时候,我们可以使用到PHP的更多特性,例如并发(多进程)、socket编程等。 那么接下来就说说我遇到的PHP多进程的编程。这个多进程的使用是有一个背景的,下面模糊描述一下背景。 我需要一个监控系统...

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

    在linux下给PHP安装socket扩展,参考方法如下: #cd /usr/soft/php/ext/sockets (进入原php安装文件下的sockets目录) #/usr/local/php/bin/phpize (运行安装后的php安装文件下的phpize) #./configure –prefix=/usr/...

    socket-io-redis-emitter:socket.io redis适配器

    发射器还提供其他编程语言版本: Java: : Python: : PHP: : Golang: : Perl: ://metacpan.org/pod/SocketIO :: 锈: : :bookmark_tabs: 表中的内容 :green_book: 建筑学 :person_running: 入门Gradle...

    PHP编程实现的TCP服务端和客户端功能示例

    本文实例讲述了PHP编程实现的TCP服务端和客户端功能。分享给大家供大家参考,具体如下: 1、修改php.ini,打开extension=php_sockets.dll 2、服务端程序SocketServer.php &lt;?php //确保在连接客户端时不会超时 ...

    php和后台c 的通信.rar

    xmlrpc实现php和后台c 的通信 这里提供了一个开源的xmlrpc的包,可以实现php和c 的通信,提供多线程编程接口,省去了自己写socket的麻烦。 代码中包含一个实例:client端是php的,server端的c 的。

    php实现TCP端口检测的方法

    本文实例讲述了php实现TCP端口检测的方法。分享给大家供大家参考。具体如下: 该程序可以确认当前端口是否可用: &lt;?php class Health { public static $status; public function __construct() { } public ...

    php实现的ping端口函数实例

    主要介绍了php实现的ping端口函数,以实例形式较为详细的分析了PHP使用socket编程的技巧,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics