全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种基于ProtocolBuffer协议的服务端-客户端通信例子XXX(山东 潍坊职业学院,潍坊 261031)摘要:本文利用Python和基本的socket编程,实现基于protocol buffer的服务端-客户端通信,通过protocol buffer,可以实现通信接口的平滑升级。关键词:Python; Protocol Buffer; 网络编程;An Implement Of Server-Client Communication Based On Google Protocol BufferXXX(Weifang Vocational College, Shandong Weifang, 261031)Abstract: This article implement a server-client communication based on google protocol buffer.By the protocol buffer , we can update the communication interface smoothly.Keywords: Python; Protocol Buffer; Network Programming;1简介Protocol Buffers是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和平台并且可扩展性极强。现阶段官方支持C+、JAVA、Python等三种编程语言,但可以找到大量的几乎涵盖所有语言的第三方拓展包。Python:Python是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简捷而清晰,具有丰富和强大的类库。Python最大的特点是编程快速易上手。2Protcol Buffer协议定义Protocol Buffer是google研发的针对数据描述的语言,相比传统的xml,它更简单易用,描述更清晰,解析更快,数据访问更快。下面看一个例子,例如我们需要描述服务器和客户端的通信协议设计为:客户端-服务端消息:FromAddr ToAddr CcAddr Subject Content 服务端-客户端消息:ResponseCode Msg用xml来描述如下:客户端-服务端消息: 1223 21323 213223 hell world this is a test mail 服务端-客户端消息: 0 success 用protocol buffer来描述如下:客户端-服务端消息:messagemailReq required string from =1; required string to =2; optional string cc =3; required string subject =4; required string content =5;服务端-客户端消息:messagemailRsp required code =1; optioned msg =2;3基于Protcol Buffer实现服务端和客户端定义好上述的protocol协议后,采用protoc编译成python代码,产生mailReq_pb2.py和mailRsp_pb2.py 2个文件客户端发送代码:import socketimport mailReq_pb2.pyimport mailRsp_pb2.pyhost=localhostport=10000s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(host,port)req= mailReq_pb2.mailReq()req.from=” 1223”req.to = “21323”req.cc = “213223”req.subject = “hello world”req.content = “this is a test mail”sendData = req.SerializeToString()s.send(sendData)recvData = s.recv(4096)rsp = mailRsp_pb2.mailRsp()rsp.ParseFromString(recvData)print reqprint rsps.close()服务端处理代码:import socketimport mailReq_pb2.pyimport mailRsp_pb2.pyhost=localhostport=10000s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.bind(host,port)s.listen(5)while 1:sock,addr=s.accept()print got connection form ,sock.getpeername()reqData=sock.recv(4096)if not data:breakelse:req= mailReq_pb2.mailReq()req.ParseFromString(reqData)rsp = mailRsp_pb2.mailRsp()if req.from = “”: rsp.code =1 rsp.msg = “empty from address”else: rsp.code = 0 rsp.msg = “success”rspData = rsp.SerializeToString()sock.send(rspData)print req
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能农业的土地利用规划
- 四川电影电视学院《动画史与经典作品赏析》2021-2022学年第一学期期末试卷
- 石河子大学《药用植物学》2021-2022学年第一学期期末试卷
- 石河子大学《食品技术原理》2022-2023学年第一学期期末试卷
- 石河子大学《结构力学二》2021-2022学年第一学期期末试卷
- 石河子大学《家庭社会工作》2023-2024学年第一学期期末试卷
- 石河子大学《房屋建筑学》2023-2024学年第一学期期末试卷
- 沈阳理工大学《自动控制原理》2023-2024学年期末试卷
- 沈阳理工大学《商业摄影》2023-2024学年第一学期期末试卷
- 沈阳理工大学《建筑实务》2021-2022学年第一学期期末试卷
- 某集团公司战略地图
- 《线性代数》教案完整版教案整本书全书电子教案
- 旅游管理信息系统教材课件汇总完整版ppt全套课件最全教学教程整本书电子教案全书教案合集最新课件汇编
- 三年级下册美术课件-第4课 瓜果飘香丨赣美版
- 绿电制绿氢及其综合利用技术PPT
- JJG646-2006移液器检定规程-(高清现行)
- 【课题研究】-《普通高中英语阅读课文教学研究》结题报告
- 严重精神障碍管理工作规范课件(PPT 39页)
- 羊常见普通病类型和防治
- 梁板柱同时浇筑及方案
- 沟槽开挖支护专项施工方案(46页)
评论
0/150
提交评论