社区
基础编程
帖子详情
◆◇socket高手请进!!高分请教socket通信的问题△▲
bloveblue
2004-12-10 10:56:07
如何在建立两个php页面程序,
然后让它们之间采取“请求->响应”式的通信方式,
即客户端提出请求并发送信息,然后socket响应并接受,然后处理!!
谁能给出两个最简单的php通信实例的php页面程序!(必须是socket通信,必须可运行)
请确认程序可运行后再发!!谢谢!!
小弟午饭前急等您的回复!!如采用另开贴给分!!!
...全文
152
4
打赏
收藏
◆◇socket高手请进!!高分请教socket通信的问题△▲
如何在建立两个php页面程序, 然后让它们之间采取“请求->响应”式的通信方式, 即客户端提出请求并发送信息,然后socket响应并接受,然后处理!! 谁能给出两个最简单的php通信实例的php页面程序!(必须是socket通信,必须可运行) 请确认程序可运行后再发!!谢谢!! 小弟午饭前急等您的回复!!如采用另开贴给分!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
entice
2005-01-24
打赏
举报
回复
手册上有.
bloveblue
2004-12-10
打赏
举报
回复
神速啊!!
谢谢 mrshelly(Shelly)
谢谢 xuzuning(唠叨)老大!!
xuzuning
2004-12-10
打赏
举报
回复
server.php
<?php
// Server
// 设置错误处理
error_reporting (E_ALL);
// 设置运行时间
set_time_limit (0);
// 起用缓冲
ob_implicit_flush ();
$ip = "10.34.136.110"; // IP地址
$port = 1000; // 端口号
$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); // 创建一个SOCKET
if ($socket)
echo "socket_create() successed!\n";
else
echo "socket_create() failed:".socket_strerror ($socket)."\n";
$bind = socket_bind ($socket, $ip, $port); // 绑定一个SOCKET
if ($bind)
echo "socket_bind() successed!\n";
else
echo "socket_bind() failed:".socket_strerror ($bind)."\n";
$listen = socket_listen ($socket); // 间听SOCKET
if ($listen)
echo "socket_listen() successed!\n";
else
echo "socket_listen() failed:".socket_strerror ($listen)."\n";
while (true)
{
$msg = socket_accept ($socket); // 接受一个SOCKET
if (!$msg)
{
echo "socket_accept() failed:".socket_strerror ($msg)."\n";
break;
}
$welcome = "服务端收到:Welcome to PHP Server!\n";
socket_write ($msg, $welcome, strlen ($welcome));
while (true)
{
$command = strtoupper (trim (socket_read ($msg, 1024)));
if (!$command)
break;
switch ($command)
{
case "HELLO":
$writer = "Hello Everybody!";
break;
case "QUIT":
$writer = "Bye-Bye";
break;
case "HELP":
$writer = "HELLO\tQUIT\tHELP";
break;
default:
$writer = "Error Command!";
}
socket_write ($msg, $writer, strlen ($writer));
if ($command == "QUIT")
break;
}
socket_close ($msg);
if ($command == "QUIT")
break;
}
socket_close ($socket); // 关闭SOCKET
?>
client.php
<?php
// Client
// 设置错误处理
error_reporting (E_ALL);
// 设置处理时间
set_time_limit (0);
$ip = "10.34.136.110"; // IP 地址
$port = 1000; // 端口号
$socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP); // 创建一个SOCKET
if ($socket)
echo "socket_create() 成功!<br>\n";
else
echo "socket_create() 失败:".socket_strerror ($socket)."<br>\n";
$conn = socket_connect ($socket, $ip, $port); // 建立SOCKET的连接
if ($conn)
echo "成功连接到[".$ip.":".$port."]<br>\n";
else
echo "socket_connect() 失败:".socket_strerror ($conn)."<br>\n";
echo socket_read ($socket, 1024)."<br>";
$stdin = fopen ('php://stdin', 'r');
$ar = array("HELLO","HELP","test","QUIT");
$i = 0;
while (true)
{
// $command = trim (fgets ($stdin, 1024));
// socket_write ($socket, $command, strlen ($command));
echo "发送 $ar[$i]<br>";
socket_write ($socket, $ar[$i], strlen($ar[$i]));
$i++;
$msg = trim (socket_read ($socket, 1024));
echo "收到:$msg<br>\n";
if ($msg == "Bye-Bye")
break;
}
fclose ($stdin);
socket_close ($socket);
?>
修该程序中的ip地址为你真实的ip地址
在第一个浏览器中执行server.php
在第二个浏览其中执行client.php
你将会看到对话结果。尝试修改消息串,你就可以看到不同的对话结果。注意其中的退出连接的命令
mrshelly
2004-12-10
打赏
举报
回复
建议你去看 用PHP做的 WEB 服务器。
基础
高分
请教
如何限制程序运行的方法?求助:通过编程DirectX抓屏------>masterz:再麻烦你一下,谢谢熟悉RichEdit的朋友过来看一下,RichEdit的几个
问题
.如何对 I/O 端口进行操作?有了该
问题
就有了思考(100分 献礼!)...
关于西电计科本科学习的一些经验分享与资料汇总
,因为试点班有可能存在以下
问题
: 所有卓越班限定只能保研本校,如果你想通过进试点班开学转专业但又想保研外校就要确认是否能退班,而且要注意退班后要补哪些课,在保研前来得及补不。 因为是试点班,负责人可能会...
CSDN回帖得分大全(近两年)
一个关于利用WinInet和网站
通信
的
问题
[VC/MFC 网络编程] √ 如何得知我写的注入dll是否被调试软件调试? [VC/MFC 基础类] √ 关于初级dll编写的
问题
[VC/MFC 基础类] √ ...
C++面试题
14.void *p的
问题
不能使用++等指针算术(会出现error C2036: 'void *' : unknown size) 15.引用和指针的区别与联系 引用类似于常量指针,一旦初始化,不能更改 16.简述一下hash算法 17.一个32位的数据,怎样找到最...
Jiangsheng的CSDN Digest (Dec 2005)
请
高手
指教,最好有源码,delphi的最好 没有通用的函数。 你可以用Windows Media Format SDK里面的WMReader对象打开Windows Media Player支持的文件,之后读取相关信息。参见...
基础编程
21,893
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章