



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种基于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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 19785-3:2025 EN Information technology - Common Biometric Exchange Formats Framework - Part 3: Patron format specifications
- 华科数控技术课件网址
- 健康老龄化课件
- 杭州高中模拟数学试卷
- 湖南8年级下册数学试卷
- 2024-2030年中国冬枣行业市场深度分析及发展趋势预测报告
- 2021-2026年中国EHPS电液泵市场深度分析及投资战略咨询报告
- 健康科普知识课件
- 健康科学减脂课件
- 2023-2028年中国混合云管理行业市场全景评估及投资规划建议报告
- 采棉机操作手册和维护指南
- 放射状角膜切开术并发症的长期随访研究-全面剖析
- Excel表格公式培训
- 2025年山西省华远国际陆港集团有限公司招聘笔试参考题库含答案解析
- 塞尔维亚语教学与学习作业指导书
- 农商银行贷款合同电子版
- 翼状胬肉术后护理
- 关于麻将馆的创业计划书
- 《目视化管理》课件
- ERP车间管理模块操作培训手册
- 机械制造项目检测试验计划
评论
0/150
提交评论