版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
——江西应用技术职业学院web前后端数据交互技术Socket通信案例分析案例思路:1.使用PHP实现Socket服务端//创建Socket。AF_INET:代表通信时使用IPv4协议;SOCK_STREAM:代表传输的数据是二进制流数据;SOL_TCP:代表底层使用的协议是TCP$socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);//指定Socket相应的属性。SOL_SOCKET:设定协议的等级;SO_REUSEADDR:设置端口释放之后可以立即被使用案例分析案例思路:socket_set_option($socket,SOL_SOCKET,SO_REUSEADDR,1);//绑定端口socket_bind($socket,0,$port);//监听端口socket_listen($socket);//声明一个数组,用于存放所有的客户端连接$clients=array($socket);案例分析案例思路:while(true){$changed_socket=$clients;//在当前数组中获取活跃的Socket连接,即当前正在发送请求的连接或正在传输数据的连接等socket_select($changed_socket,$null,$null,0,10);案例分析案例思路://判断当前的Socket是否为活跃的Socket,如果是,说明客户端在请求连接if(in_array($socket,$changed_socket)){echo"clientconnecting";//显示正在连接中$socket_new=socket_accept($socket);//接受连接$clients[]=$socket_new;案例分析案例思路://发送握手信息$header=socket_read($socket_new,1024);perform_handshaking($header,$socket_new,$host,$port);//在连接成功后,当前Socket要从活跃Socket列表中删除,否则会陷入死循环$key=array_search($socket,$changed_socket);unset($changed_socket[$key]);案例分析案例思路:如果不是新连接,是客户端在发送数据,服务器开始读取客户端发送的数据并进行格式处理(解包、转换、编码)//解包数据$received_text=unmask($buf);//将数据解包后转成JSON对象$msgJson=json_decode($received_text);案例分析案例思路:
$namer=$msgJson->namer;//读取数据$content=$msgJson->content;$message=mask(json_encode([//将数据进行编码'namer'=>$namer,'content'=>$content,'type'=>'usermsg']));案例分析2.使用Jquery实现Socket客户端$(function(){//连接Socket的URL地址varwsurl="ws://:8085/ajax/server.php";varwebsocket;//用于存放客户端创建的Socket对象案例分析if(window.WebSocket){websocket=newWebSocket(wsurl);websocket.onopen=function(event){//onopen事件,连接成功$('#showMessage').append("<p>connetedsuccess!</p>");}案例分析websocket.onmessage=function(event){//onmessage事件,接收消息,显示在页面上varmsg=JSON.parse(event.data);vartype=msg.type;varnamer=r;varcontent=msg.content;案例分析if(type=='usermsg'){$('#showMessage').append("<p>"+namer+":"+content+"</p>");}else{$('#showMessage').append("<p>system:"+content+"</p>");}}案例分析//数据发送
functionsend(){varnamer=$("[name='namer']").val();varcontent=$("[name='content']").val();if(namer==''){alert('请输入名称');returnfalse;}案例分析varmsg={namer:namer,content:content};
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青少年社区矫正奖惩制度
- 集团公司考勤奖惩制度
- 护理部对护士长奖惩制度
- 教育培训员工奖惩制度
- 监理公司质量奖惩制度
- 内科护理学护理效果
- 公共资源交易服务指南
- 企业知识产权管理与应用手册
- 系统集成与运维规范
- 水电维修服务流程手册
- 5.1人民代表大会制度 课件(23张幻灯片)+内嵌视频 道德与法治统编版八年级下册
- 动火作业与受限空间安全管理标准
- 2026年包头轻工职业技术学院单招综合素质考试题库附答案详解(基础题)
- 2026年当辅警笔试题库及一套完整答案
- 2026年兴安职业技术学院单招职业倾向性测试题库及答案详解(新)
- 国家基层糖尿病防治管理指南(2025版)
- 2025年国企招聘考试(建筑工程及造价)经典试题及答案
- (2026)中华人民共和国海关注册登记和备案企业信用管理办法解读课件
- 2025CSCO胰腺癌诊疗指南课件
- 慈善基金会内控制度
- DB15∕T 385-2025 行业用水定额
评论
0/150
提交评论