python怎么使用socket先读取长度,在读取报文内容-创新互联

这篇文章主要介绍了python怎么使用socket先读取长度,在读取报文内容,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联建站坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。10年网站建设经验创新互联建站是成都老牌网站营销服务商,为您提供网站设计制作、网站设计、网站设计、HTML5建站、网站制作、高端网站设计、小程序制作服务,给众多知名企业提供过好品质的建站服务。

本文实例讲述了python使用socket 先读取长度,在读取报文内容。分享给大家供大家参考,具体如下:

tlpmts1:~/sbin # cat test9105.py

# -*- coding: utf-8 -*-
import SocketServer
import socket
import time
import sys
reload(sys)
print time.ctime()
sys.setdefaultencoding('utf-8')
class SMSsendx (object):
 def Sms(self):
   #.decode('utf-8').encode('gbk')
   host='10.4.160.71'
   port = 9105
   print 'host'+'->'+host
   print 'port'+'->'+str(port)
   bufsize=10240
   addr=(host,port)
   s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
   s.settimeout(20)
   s.connect((host,port))
   data=''
   # data='00714410044392333060060020170920101020A013010201010202017092601000055074410.4.129.2117010030000031010200010102020170926010000550744999914000000000010000000000000000000033010000201000000459011410110111100'
   # length = len(data.encode('utf-8'))
   # slen = '%08d' % length
   # data=slen + data
   # data='000314   21801020180528010000218475 L06 2018052810241220 ES999 APP ZXGY 999999999 218010  '
   data='   004355 173906133 330100921 ES999 9999 20190528 202020 M01 50010120190528010000002780 201010  20202020190528878173906123 0001 27 202020 01003000003   20202020190424878173906123   '
   length = len(data.encode('utf-8'))
   slen = '%08d' % length
   data=slen + data
   print data
   recv_size = 0
   #msg = data.encode('gbk')
   s.send(data)
   data = s.recv(bufsize)
   # print data.strip()
   length=data
   print int(length)
   resp = s.recv(int(length));
   cur_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
   print ("%s receice from server :%s") % (cur_time,data + resp)
a=SMSsendx()
a.Sms()
print time.ctime()

tlpmts1:~/sbin # python test9105.py
Thu Jul  4 16:06:43 2019
host->10.4.160.71
port->9105
00000754 004355 173906133 330100921 ES999 9999 20190528 202020 M01 50010120190528010000002780 201010 20202020190528878173906123 0001 27 202020 01003000003 20202020190424878173906123
539
2019-07-04 16:06:43 receice from server :000005390000
交易成功
20190528
173906133
01003000003
27
20202020190528878173906123
201010
202020
20202020190424878173906123


Thu Jul  4 16:06:43 2019

感谢你能够认真阅读完这篇文章,希望小编分享的“python怎么使用socket先读取长度,在读取报文内容”这篇文章对大家有帮助,同时也希望大家多多支持创新互联成都网站设计公司,关注创新互联成都网站设计公司行业资讯频道,更多相关知识等着你来学习!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、网站设计器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页名称:python怎么使用socket先读取长度,在读取报文内容-创新互联
文章起源:http://azwzsj.com/article/djggjs.html