python:socket通信

socket_server_ssh.py編碼如下:

import socket,os
server=socket.socket()
server.bind(("localhost",9999))
server.listen()
while True:
---conn,addr=server.accept() #等電話
---print("new connet。。。",addr)
---while True:
---print("等待新指令....")
---data=conn.recv(1024)
---if not data:
------print("客戶端已斷開")
------break
---cmd_res=os.popen(data.decode()).read() #接受字符串,執行結果也是字符串
---if len(cmd_res)==0:
------print("cmd_res has not output。。。")
---conn.send((str(len(cmd_res.encode())).encode("utf-8"))
---conn.send(cmd_res.encode("utf-8"))
server.close()

socket_server_client.py編碼如下:
import socket
client=socket.socket()
client.connect(("localhost",9999))
while True:
---data=input("請輸入指令:").strip()
---if len(data)==0:
------continue
---client.send(data.encode("utf-8"))
---cmd_res_size=client.recv(1024) #先接受大小
---recevied_size=0
---recevied_data=b''
---while recevide_size<int(len(cmd_res_size.decode())):
------data=client.recv(1024)
------recevied_size+=len(data) #每次接收的大小不一樣,所以需要用len判斷一下
------recevied_data+=data
---else:
------print("cmd_res has recevied done......")
------print(recevied_data.decode())
client.close()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章