首页 > 解决方案 > (python 中的 TCP 客户端编程)如何在使用 recv() 获取正则表达式中正确地生成我的十六进制字符串?

问题描述

我编写了一个 TCP 客户端应用程序来从本地服务器接收一些数据,并且它可以工作。

这是所有的代码

# -*- coding: utf-8 -*-
import socket

s = socket.socket()
host = '192.168.1.10'
port = 4001

s.connect((host,port))
print('')
print('********************************************************')
print (s.recv(13))
print('********************************************************')
s.close

我在dos中运行它,它显示了我想要的数据

在此处输入图像描述

但我真正需要的是红色矩形中的那些

所以我稍微改变了我的代码,但它没有显示我想要的。我想我只是把所有的正则表达式都搞砸了

这是我的python代码,很简单

# -*- coding: utf-8 -*-
import socket
import re

s = socket.socket()
host = '192.168.1.10'
port = 4001

s.connect((host,port))
print(' ')
print('********************************************************')
#print (s.recv(13))
#m = re.match(r'^\xn[5-12]',s.recv(13))
a = s.recv(13)
m = re.match(r'^/\xn[5-12]$',a)
print(m)
print('********************************************************')
s.close

标签: pythonpython-3.x

解决方案


取一片字节:a[4:7].


推荐阅读