详解python中TCP协议中的粘包问题-创新互联
TCP协议中的粘包问题

1.粘包现象
基于TCP实现一个简易远程cmd功能
#服务端
import socket
import subprocess
sever = socket.socket()
sever.bind(('127.0.0.1', 33521))
sever.listen()
while True:
client, address = sever.accept()
while True:
try:
cmd = client.recv(1024).decode('utf-8')
p1 = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr= subprocess.PIPE)
data = p1.stdout.read()
err_data = p1.stderr.read()
client.send(data)
client.send(err_data)
except ConnectionResetError:
print('connect broken')
client.close()
break
sever.close()
#客户端
import socket
client = socket.socket()
client.connect(('127.0.0.1', 33521))
while True:
cmd = input('请输入指令(Q\q退出)>>:').strip().lower()
if cmd == 'q':
break
client.send(cmd.encode('utf-8'))
data = client.recv(1024)
print(data.decode('gbk'))
client.close() 当前名称:详解python中TCP协议中的粘包问题-创新互联
当前URL:http://www.jxjierui.cn/article/cehcep.html


咨询
建站咨询
