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结构的技巧相关推荐

  1. 【Unity3D游戏开发】之游戏目录结构之最佳实践和优化 (十一)

    游戏目录结构之最佳实践 前置条件 1.多人协作开发,git管理 2.游戏不大,所有Scene合并到一起Scene中,eg.RoleScene.MapScene.StoreScene 3.Master一 ...

  2. java基础项目【团队调度系统开发(需求分析、软件包结构、全部完整代码)】

    需求分析: 模拟实现一个基于文本界面的<团队人员调度软件>: 软件启动时,根据给定的数据创建公司部分成员列表: 根据菜单提示,基于现有的公司成员,组建一个开发团队以开发一个新的项目: 组建 ...

  3. asp.net小说网系统VS开发物业sqlserver数据库web结构c#编程计算机网页源码项目

    一.源码特点         asp.net小说网系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,开发环境为vs2010,数据库为sqlserver200 ...

  4. 2D游戏开发 - SkyGameEngine2d 引擎架构 | 目录结构 | 引擎入口点

    2D游戏开发 - SkyGameEngine2d 引擎架构 | 目录结构 | 引擎入口点 一.引擎架构 二.引擎目录 2.1 src目录介绍 三.项目目录 四.引擎框架入口点分析 4.1 main.c ...

  5. app开发和web开发_了解2020年现代Web App开发的概念

    app开发和web开发 Millions of businesses exchange information on the internet and to interact with their t ...

  6. 网站开发和企业级开发有什么区别?

    经常看到Web开发.网站开发.企业级开发,以前很难分清楚它们之前有什么不同?以前也有个说法:Java比较适合企业级开发. 现在经验增加了一点,谈谈我的一点看法. Web开发:www访问的网页.网站,B ...

  7. 6467t 1080php,DM6467T开发板领航——开发环境的文件配置

    DM6467T开发板领航--开发环境的文件配置 继上一篇DM6467T开发领航--开发环境安装 按照我们上一篇DM6467T开发领航--开发环境安装的安装方法,最主要要修改的文件就是/home/dm6 ...

  8. 软件开发、硬件开发、IPD产品开发 及 工程开发各阶段划分

    软件开发.硬件开发.IPD产品开发 及 工程开发各阶段划分 参考链接:https://zhuanlan.zhihu.com/p/427246890 1.软件开发阶段划分: Alpha.Beta.RC. ...

  9. 物联网开发笔记(69)- 使用Micropython开发树莓派pico开发板raspberry pi pico之控制晶联JLX172104G-590液晶模块

    一.目的 这一节我们学习如何使用我们的树莓派pico开发板raspberry pi pico来控制晶联JLX172104G-590液晶模块. 二.环境 Win10 + 树莓派pico开发板raspbe ...

最新文章

  1. Linux内存管理:bufferCache和PageCache
  2. JAVA_Thread_interrupt
  3. 文本类文件与VS关联-实践
  4. 信号通路怎么读_奥利给~~代谢通路富集分析原来还可以这么做?
  5. python 文件操作 os.read() 方法 读文本文件 读取文字
  6. eclipse菜单字体乱码的解决
  7. 4028: [HEOI2015]公约数数列
  8. java mongodb 插入数据_mongoDB 插入数据 用java实现
  9. linux tcp cork,Socket选项系列之TCP_CORK(转)
  10. larveral 直接拷贝安装_做一个能引导所有系统的安装盘
  11. vue 添加过滤器-以格式化日期为例
  12. 百度文库免费下载,亲测,原格式文档
  13. 当初我要是这么学习操作系统就好了(附带思维导图)
  14. 天地图key的申请步骤
  15. c#winform——Gobang五子棋简易版双人对战制作(基本结构+代码)
  16. OpenCV_11高反差保留
  17. 夫妻租房,同时办取上海市居住证 攻略
  18. 简单理解vertical-align
  19. 卖票问题 - 三种解决方法
  20. 熵权法EW与层次分析法AHP之数学原理及实例

热门文章

  1. oracle dba_tables各字段含义
  2. 马斯克如何颠覆航天? 1/5385成本,c++和python编程!
  3. YOLO v1到YOLO v4(上)
  4. 2021年大数据Spark(三十二):SparkSQL的External DataSource
  5. Cocos 发射和监听事件 事件派送(TypeScript)
  6. HarmonyOS 实现跑马灯效果
  7. python 把一个字典赋值给一个空的字典,或者是列表赋值给一个空的列表显示黄色警告
  8. In order to use Instant Run with this device running API 26, you must install platform API 26 in you
  9. Node搭建多人聊天室
  10. Unix/Linux/Mac os下 文件互传