详解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协议中的粘包问题-创新互联
本文网址:http://www.scyingshan.cn/article/cehcep.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 