服务器端

<?php
error_reporting(E_ALL);
set_time_limit(0);
ob_implicit_flush();
//本地IP
$address = 'localhost';
//设置用111端口进行通信
$port = 9989;
//创建SOCKET
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { echo "socket创建失败原因 " . socket_strerror($sock) . "\n";
} if (($ret = socket_bind($sock, $address, $port)) < 0) { echo "创建套接字失败原因 " . socket_strerror($ret) . "\n";
}
//监听
if (($ret = socket_listen($sock, 5)) < 0) { echo "监听失败原因 " . socket_strerror($ret) . "\n";
}
do { //接收命令  if (($msgsock = @socket_accept($sock)) < 0) { echo "命令接收失败原因: " . socket_strerror($msgsock) . "\n"; break; } do { if (false === ($buf = @socket_read($msgsock, 2048, PHP_NORMAL_READ))) { echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n"; break 2; } if (!$buf = trim($buf)) { continue; } if ($buf == 'quit') { break; } if ($buf == 'shutdown') { socket_close($msgsock); break 2; } if ($buf == 'sun') { echo'what are you doing?'; } echo "客户端消息:$buf\n";fwrite(STDOUT, 'server端发送的消息:');$in = fgets(STDIN)."\n";socket_write($msgsock, $in, strlen($in)); } while (true); socket_close($msgsock); } while (true); socket_close($sock); ?>

客户端

<?php
error_reporting(E_ALL);$port =  9989;
$host =  "127.0.0.1";$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);if ($socket < 0) {echo "服务器创建失败,失败原因:".socket_strerror($socket)."\n";}$connect = socket_connect($socket,$host,$port);
if ($connect < 0) {echo "服务器连接失败,失败原因".socket_strerror($connect)."\n";
}
//发送命令
$in = "HEAD / HTTP/1.1\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';
do {fwrite(STDOUT,'client端发送的消息:');$in = fgets(STDIN)."\n"; socket_write($socket, $in, strlen($in)); if ($out = socket_read($socket, 2048)) {echo "服务器端消息:".$out;
}} while (true);echo "Close socket........";
socket_close($socket);
echo "OK,He He.\n\n";?>

php实现简易聊天室相关推荐

  1. 连夜撸了一个简易聊天室

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 分不清轮询.长轮询?不知道什么时候该用websocket还 ...

  2. 撸一个简易聊天室,不信你学不会实时消息推送(附源码)

    点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐 19 个 github 超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 分不清轮询.长轮询? ...

  3. java聊天室程序_Java简易聊天室程序socket

    Java简易聊天室程序socket chatroomdemo.java package com.socket.demo; import java.io.IOException; import java ...

  4. Socket编程实现简易聊天室

    1.Socket基础知识 Socket(套接字)用于描述IP地址和端口,是通信链的句柄,应用程序可以通过Socket向网络发出请求或者应答网络请求. Socket是支持TCP/IP协议的网络通信的基本 ...

  5. Express+Socket.IO 实现简易聊天室

    代码地址如下: http://www.demodashi.com/demo/12477.html 闲暇之余研究了一下 Socket.io,搭建了一个简易版的聊天室,如有不对之处还望指正,先上效果图: ...

  6. 基于Node.js + WebSocket 的简易聊天室

    代码地址如下: http://www.demodashi.com/demo/13282.html Node.js聊天室运行说明 Node.js的本质就是运行在服务端的JavaScript.Node.j ...

  7. docker搭建swoole简易聊天室

    docker搭建swoole的简易聊天室 首先pull镜像 docker pull docker.io/kong36088/nginx-php7-swoole 创建容器 docker run --na ...

  8. Java WebSocket编程与网页简易聊天室

    在webSocket还未引入前,许多开发人员通过各种非正规手段来完成更新网站的最新信息和到所有当前访问者的任务,其中一种手段就是通过浏览器向服务器轮询更新,但这种手段的网络延迟比较明显,其用户体验比较 ...

  9. Go实现简易聊天室(群聊)

    参考:Go 群聊 ( goroutine ) · 语雀 基于websocket的聊天室,可进一步参考: (1) go实现聊天室(WebSocket方式) (2) Golang代码搜集-基于websoc ...

  10. WebSocket原生JavaScript实现简易聊天室

    WebSocket原生实现 WebSocket-Vue2 WebSocket-Vue3 基本介绍 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. Web ...

最新文章

  1. 重大通知:社交系统ThinkSNS+ 发布公告!
  2. spark RDD底层原理
  3. ceph的数据存储之路(10) -----ceph对象存储的ls命令实现及思考
  4. 字符串匹配算法Java_如何简单理解字符串匹配算法?
  5. Python 的字符串内建函数
  6. 前端框架:发送请求获取数据的执行逻辑
  7. 刘敏:优麒麟开源操作系统运营实践 | DEV. Together 2021 中国开发者生态峰会
  8. [渝粤教育] 中国地质大学 计算机图形学(新) 复习题
  9. 弹幕解析播放器json客户端解析后台管理源码
  10. ShellExecute函数返回值含义
  11. 计算机怎样用计算法绘制圆弧,计算机图形学圆弧生成算法具体程序实现
  12. linux crontab 每5分钟执行一次_linux面试题:Linux定时任务必备技能有哪些?
  13. PHP中的数组建必须为数字吗,PHP检查数组中缺少的数字
  14. tcp连接时,BROKEN PIPE错误的原因以及解决方法
  15. [图灵程序设计丛书].流畅的Python.revise11.pdf
  16. hashcat+john破解rar密码
  17. 支付宝 客户端 Android 集成流程
  18. Elasticsearch开启安全认证详细步骤
  19. 合作对策模型的简单实现
  20. Java闲杂笔记摘抄

热门文章

  1. Android控件 TabHost,Android控件之TabHost用法实例分析
  2. 数据分析之落地sop流程
  3. MPU9250调试笔记(融合磁力计计算Yaw)
  4. 移动 app 测试工具 bugtags
  5. MCSA / Windows Server 2016 DISM和Powershell管理和维护镜像
  6. IPEmotion 2022 R1支持ARINC 429数据总线标准
  7. jdk、jre、jvm区别
  8. 通俗易懂的讲解贝叶斯原理(保证简单)
  9. 免费可开放接口一览表
  10. Java 线程的创建——8种方法