客户做一个用Netcat实现的通信的服务端。需要我们这边实现向这个服务端发数据。
用python 的tcp socket方式发现回复一次之后就终止了。这个socket库不太够用。
今天在研究MacOS telnet通信的时候发现用telnet能实现跟Netcat 服务端通信。
# -*- coding: utf-8 -*-
import telnetlib
'''Telnet远程登录:Windows客户端连接Linux服务器 ,实现与MacOS b-l v4.0进行简单通信'''
# 配置选项
Host = 'localhost' # Telnet服务器IP
# 连接Telnet服务器
tn = telnetlib.Telnet(Host, port=1111, timeout=10)
tn.set_debuglevel(2)
finish_bali="@\n" # 命令提示符(标识着上一条命令已执行完毕)
# 输入登录用户名
print(">>> read login")
tn.write("CCQxxxxx@start".encode('ascii')+b'\n')
tn.read_until(finish_bali.encode('ascii'))
tn.write("CCQxxxxx@pdata@first@1.0".encode('ascii')+b'\n')
tn.read_until(finish_bali.encode('ascii'))
tn.write("CCQxxxxx@dut_pos@INS0123H".encode('ascii')+b'\n')
tn.read_until(finish_bali.encode('ascii'))
tn.write("CCQxxxxxK@submit@1.0".encode('ascii')+b'\n')
tn.read_until(finish_bali.encode('ascii'))
tn.close()
需要注意:finish_bali这个结束符,通道会一直等到这个结束符才会发下一个指令。如果给了错误结束符会一直卡在等待那里。不会执行下一个write,也不会结束。