一种基于protocolbuffer协议的服务端-客户端通信例子

一种基于protocolbuffer协议的服务端-客户端通信例子

ID:8814929

大小:46.50 KB

页数:4页

时间:2018-04-08

一种基于protocolbuffer协议的服务端-客户端通信例子_第1页
一种基于protocolbuffer协议的服务端-客户端通信例子_第2页
一种基于protocolbuffer协议的服务端-客户端通信例子_第3页
一种基于protocolbuffer协议的服务端-客户端通信例子_第4页
资源描述:

《一种基于protocolbuffer协议的服务端-客户端通信例子》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、一种基于ProtocolBuffer协议的服务端-客户端通信例子XXX(山东潍坊职业学院,潍坊261031)摘要:本文利用Python和基本的socket编程,实现基于protocolbuffer的服务端-客户端通信,通过protocolbuffer,可以实现通信接口的平滑升级。关键词:Python;ProtocolBuffer;网络编程;AnImplementOfServer-ClientCommunicationBasedOnGoogleProtocolBufferXXX(WeifangVocationalCollege,ShandongWeifang,261

2、031)Abstract:Thisarticleimplementaserver-clientcommunicationbasedongoogleprotocolbuffer.Bytheprotocolbuffer,wecanupdatethecommunicationinterfacesmoothly.Keywords:Python;ProtocolBuffer;NetworkProgramming;1.简介ProtocolBuffers是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。它不依赖于语言和

3、平台并且可扩展性极强。现阶段官方支持C++、JAVA、Python等三种编程语言,但可以找到大量的几乎涵盖所有语言的第三方拓展包。Python:Python是一种面向对象、直译式计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简捷而清晰,具有丰富和强大的类库。Python最大的特点是编程快速易上手。2.ProtcolBuffer协议定义ProtocolBuffer是google研发的针对数据描述的语言,相比传统的xml,它更简单易用,描述更清晰,解析更快,数据访问更快。下面看一个例子,例如我们

4、需要描述服务器和客户端的通信协议设计为:客户端->服务端消息:FromAddrToAddrCcAddrSubjectContent服务端->客户端消息:ResponseCodeMsg4用xml来描述如下:客户端->服务端消息:1223@qq.com21323@qq.com213223@qq.comhellworldthisisatestmail服务端->客户端消息:

5、ml>0success用protocolbuffer来描述如下:客户端->服务端消息:message mailReq{requiredstringfrom=1;requiredstringto=2;optionalstringcc=3;requiredstringsubject=4;requiredstringcontent=5;}服务端->客户端消息:message mailRsp{requiredcode=1;optionedmsg=2;}3.基于ProtcolB

6、uffer实现服务端和客户端定义好上述的protocol协议后,采用protoc编译成python代码,产生mailReq_pb2.py和mailRsp_pb2.py2个文件客户端发送代码:importsocketimportmailReq_pb2.pyimportmailRsp_pb2.pyhost="localhost"4port=10000s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect((host,port))req=mailReq_pb2.mailReq()req.from=”1223

7、@qq.com”req.to=“21323@qq.com”req.cc=“213223@qq.com”req.subject=“helloworld”req.content=“thisisatestmail”sendData=req.SerializeToString()s.send(sendData)recvData=s.recv(4096)rsp=mailRsp_pb2.mailRsp()rsp.ParseFromString(recvData)printreqprintrsps.close()服务端处理代码:importsocketimportmailReq

8、_pb2.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。