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
分享到:
相关推荐
server/client通信实例 博文链接:https://purpen.iteye.com/blog/770712
第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编程,本文详细的讲解了socket的相关知识、PHP socket的编程实例行装内容,需要的朋友可以参考下
fsockopen是对socket客户端代码的封装,该函数中封装了socket_create,socket_connect。服务器端代码:server.php复制代码 代码如下:<?phperror_reporting(E_ALL);set_time_limit(0);$address = ‘127.0.0.1’;$...
本文实例讲述了PHP向socket服务器收发数据的方法。分享给大家供大家参考。具体如下: 在PHP要向其它程序发送数据,则需要使用到php的socket功能来实例了,下面我们简单看一个实例,代码如下: 复制代码 代码如下:/*...
在这一章里你将了解到迷人而又让人容易糊涂的套接字...◆ Socket 基础PHP使用Berkley的socket库来创建它的连接。你可以知道socket只不过是一个数据结构。你使用这个socket数据结构去开始一个客户端和服务器之间的会话
本文实例讲述了php socket通信(tcp/udp)方法。分享给大家供大家参考,具体如下: 注意 1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1 2.server.php后台跑起来的时候nohup php server.php > /var/tmp/a.log ...
作为php程序员一定会接触http协议,也只有深入了解http协议,编程水平才会更进一步。最近我一直在学习php的关于http的编程,许多东西恍然大悟,受益匪浅。希望分享给大家。本文需要有一定http基础的开发者阅读。 ...
实例013 Linux下实现PHP支持Socket 20 实例014 Linux下实现PHP支持mysqli扩展技术 21 实例015 开机自动启动Apache服务 21 实例016 开机自动启动MySQL服务 22 实例017 Linux下发布“读者之家”网站 22 1.3...
本文实例讲述了PHP基于socket实现的简单客户端和服务端通讯功能。分享给大家供大家参考,具体如下: 服务器端: <?php set_time_limit(0); $host=localhost; $port=1001; //创建一个连接 $socket=socket_...
很多程序以服务形式存在,他没有终端或UI交互,它可能采用其他方式与其他程序交互,如TCP/UDP Socket, UNIX Socket, fifo。程序一旦启动便进入后台,直到满足条件他便开始处理任务。 3.何时采用守护进程开发应用程序...
一、server.php服务端: <?php error_reporting(E_ALL); set_time_limit(0); ob_implicit_flush();...//创建SOCKET ... echo "socket创建失败原因 " . socket_strerror($sock) . "\n"; } if (($ret = so
在使用这些方向的时候,我们可以使用到PHP的更多特性,例如并发(多进程)、socket编程等。 那么接下来就说说我遇到的PHP多进程的编程。这个多进程的使用是有一个背景的,下面模糊描述一下背景。 我需要一个监控系统...
在linux下给PHP安装socket扩展,参考方法如下: #cd /usr/soft/php/ext/sockets (进入原php安装文件下的sockets目录) #/usr/local/php/bin/phpize (运行安装后的php安装文件下的phpize) #./configure –prefix=/usr/...
发射器还提供其他编程语言版本: Java: : Python: : PHP: : Golang: : Perl: ://metacpan.org/pod/SocketIO :: 锈: : :bookmark_tabs: 表中的内容 :green_book: 建筑学 :person_running: 入门Gradle...
本文实例讲述了PHP编程实现的TCP服务端和客户端功能。分享给大家供大家参考,具体如下: 1、修改php.ini,打开extension=php_sockets.dll 2、服务端程序SocketServer.php <?php //确保在连接客户端时不会超时 ...
xmlrpc实现php和后台c 的通信 这里提供了一个开源的xmlrpc的包,可以实现php和c 的通信,提供多线程编程接口,省去了自己写socket的麻烦。 代码中包含一个实例:client端是php的,server端的c 的。
本文实例讲述了php实现TCP端口检测的方法。分享给大家供大家参考。具体如下: 该程序可以确认当前端口是否可用: <?php class Health { public static $status; public function __construct() { } public ...
主要介绍了php实现的ping端口函数,以实例形式较为详细的分析了PHP使用socket编程的技巧,需要的朋友可以参考下