全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种基于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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国不锈钢行业发展展望及投资策略报告
- 纺织染色机操作工变革管理水平考核试卷含答案
- 浆染联合机挡车工安全综合模拟考核试卷含答案
- 酒精酿造工道德知识考核试卷含答案
- 织布上轴工安全风险竞赛考核试卷含答案
- 《GB-T 40908-2021家具产品及其材料中禁限用物质测定方法 阻燃剂》专题研究报告
- 再生物资回收挑选工变更管理强化考核试卷含答案
- 送受话器装调工岗位设备技术规程
- 焊接设备装配调试工安全生产规范水平考核试卷含答案
- 异戊橡胶装置操作工现场作业技术规程
- 医用高压氧舱项目可行性实施报告
- 人教版九年级上册数学-圆-几何综合易错题(文本版-含答案)
- 学习2024年《关于加强社会组织规范化建设推动社会组织高质量发展的意见》解读课件
- GB/T 15688-2024动植物油脂不溶性杂质含量的测定
- 2024年江西省“振兴杯”食品安全管理师竞赛考试题库(含答案)
- 2024年吉林省中考语文试卷真题(含答案)
- MOOC 医事法学-西南医科大学 中国大学慕课答案
- 重庆大学材料科学与工程学院《833土木工程材料》历年考研真题汇编
- 2024年上海春考语文试题及参考答案作文范文(搜集整理版)
- 《农业保险承保理赔电子化作业规范》
- 中国科学院大学2023年619物理化学(甲)考研真题(含答案)
评论
0/150
提交评论