php 开发cs,PHP开发CS结构的技巧
PHP开发CS结构的技巧
PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的`首选语言。以下是小编为大家搜索整理的PHP开发CS结构的技巧,希望能给大家带来帮助!更多经常内容请及时关注我们应届毕业生考试网!
核心提示:用PHP开发C/S结构。
服务器
// Server
// 设置错误处理
error_reporting (E_ALL);
// 设置运行时间
set_time_limit (0);
// 起用缓冲
ob_implicit_flush ();
$ip = "127.0.0.1"; // 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);
}
socket_close ($socket); // 关闭SOCKET
?>
客户端
// Client
// 设置错误处理
error_reporting (E_ALL);
// 设置处理时间
set_time_limit (0);
$ip = "127.0.0.1"; // 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";
$conn = socket_connect ($socket, $ip, $port); // 建立SOCKET的连接
if ($conn)
echo "Success to connection![".$ip.":".$port."]\n";
else
echo "socket_connect() failed:".socket_strerror ($conn)."\n";
echo socket_read ($socket, 1024);
$stdin = fopen (´php://stdin´, ´r´);
while (true)
{
$command = trim (fgets ($stdin, 1024));
socket_write ($socket, $command, strlen ($command));
$msg = trim (socket_read ($socket, 1024));
echo $msg."\n";
if ($msg == "Bye-Bye")
break;
}
fclose ($stdin);
socket_close ($socket);
?>
【PHP开发CS结构的技巧】相关文章:
php 开发cs,PHP开发CS结构的技巧相关推荐
- 【Unity3D游戏开发】之游戏目录结构之最佳实践和优化 (十一)
游戏目录结构之最佳实践 前置条件 1.多人协作开发,git管理 2.游戏不大,所有Scene合并到一起Scene中,eg.RoleScene.MapScene.StoreScene 3.Master一 ...
- java基础项目【团队调度系统开发(需求分析、软件包结构、全部完整代码)】
需求分析: 模拟实现一个基于文本界面的<团队人员调度软件>: 软件启动时,根据给定的数据创建公司部分成员列表: 根据菜单提示,基于现有的公司成员,组建一个开发团队以开发一个新的项目: 组建 ...
- asp.net小说网系统VS开发物业sqlserver数据库web结构c#编程计算机网页源码项目
一.源码特点 asp.net小说网系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,开发环境为vs2010,数据库为sqlserver200 ...
- 2D游戏开发 - SkyGameEngine2d 引擎架构 | 目录结构 | 引擎入口点
2D游戏开发 - SkyGameEngine2d 引擎架构 | 目录结构 | 引擎入口点 一.引擎架构 二.引擎目录 2.1 src目录介绍 三.项目目录 四.引擎框架入口点分析 4.1 main.c ...
- app开发和web开发_了解2020年现代Web App开发的概念
app开发和web开发 Millions of businesses exchange information on the internet and to interact with their t ...
- 网站开发和企业级开发有什么区别?
经常看到Web开发.网站开发.企业级开发,以前很难分清楚它们之前有什么不同?以前也有个说法:Java比较适合企业级开发. 现在经验增加了一点,谈谈我的一点看法. Web开发:www访问的网页.网站,B ...
- 6467t 1080php,DM6467T开发板领航——开发环境的文件配置
DM6467T开发板领航--开发环境的文件配置 继上一篇DM6467T开发领航--开发环境安装 按照我们上一篇DM6467T开发领航--开发环境安装的安装方法,最主要要修改的文件就是/home/dm6 ...
- 软件开发、硬件开发、IPD产品开发 及 工程开发各阶段划分
软件开发.硬件开发.IPD产品开发 及 工程开发各阶段划分 参考链接:https://zhuanlan.zhihu.com/p/427246890 1.软件开发阶段划分: Alpha.Beta.RC. ...
- 物联网开发笔记(69)- 使用Micropython开发树莓派pico开发板raspberry pi pico之控制晶联JLX172104G-590液晶模块
一.目的 这一节我们学习如何使用我们的树莓派pico开发板raspberry pi pico来控制晶联JLX172104G-590液晶模块. 二.环境 Win10 + 树莓派pico开发板raspbe ...
最新文章
- Linux内存管理:bufferCache和PageCache
- JAVA_Thread_interrupt
- 文本类文件与VS关联-实践
- 信号通路怎么读_奥利给~~代谢通路富集分析原来还可以这么做?
- python 文件操作 os.read() 方法 读文本文件 读取文字
- eclipse菜单字体乱码的解决
- 4028: [HEOI2015]公约数数列
- java mongodb 插入数据_mongoDB 插入数据 用java实现
- linux tcp cork,Socket选项系列之TCP_CORK(转)
- larveral 直接拷贝安装_做一个能引导所有系统的安装盘
- vue 添加过滤器-以格式化日期为例
- 百度文库免费下载,亲测,原格式文档
- 当初我要是这么学习操作系统就好了(附带思维导图)
- 天地图key的申请步骤
- c#winform——Gobang五子棋简易版双人对战制作(基本结构+代码)
- OpenCV_11高反差保留
- 夫妻租房,同时办取上海市居住证 攻略
- 简单理解vertical-align
- 卖票问题 - 三种解决方法
- 熵权法EW与层次分析法AHP之数学原理及实例
热门文章
- oracle dba_tables各字段含义
- 马斯克如何颠覆航天? 1/5385成本,c++和python编程!
- YOLO v1到YOLO v4(上)
- 2021年大数据Spark(三十二):SparkSQL的External DataSource
- Cocos 发射和监听事件 事件派送(TypeScript)
- HarmonyOS 实现跑马灯效果
- python 把一个字典赋值给一个空的字典,或者是列表赋值给一个空的列表显示黄色警告
- In order to use Instant Run with this device running API 26, you must install platform API 26 in you
- Node搭建多人聊天室
- Unix/Linux/Mac os下 文件互传