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

本文实例讲述了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='007144 100443923 330600600 20170920 101020 A01 301020 10102020170926010000550744 10.4.129.21 17 01003000003 101020 0 0 10102020170926010000550744 9999 14 0000000000 10000000000000000000 0 33010000201000000459 0 1 14 1 0110111100 '
# 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
00000754004355 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://www.jxjierui.cn/article/djggjs.html


咨询
建站咨询
