Python學習之路 socket實現ssh

2022-08-09 07:03:10 字數 1879 閱讀 7843

服務端

#

#sock_server_ssh

import

socket,os

server =socket.socket()

server.bind((

'localhost

',9999))

server.listen()

while

true:

print("

接收新指令")

conn,addr =server.accept()

print("

new conn:

",addr)

while

true:

data = conn.recv(1024)

ifnot

data:

print("

客戶端已斷開")

break

print("

執行指令:

",data)

cmd_res = os.popen(data.decode()).read()#

接受字串,執行結果也是字串

print("

before send

",len(cmd_res))

if len(cmd_res) ==0:

cmd_res = "

cmd has no output...

"conn.send(str(len(cmd_res)).encode(

"utf-8

"))#

先發大小給客戶端

conn.send(cmd_res.encode("

utf-8"))

print("

send done")

server.close()

view code

客戶端

1

##socket_server_client23

import

socket

4 client =socket.socket()

5 client.connect(("

localhost

",9999))67

while

true:

8 cmd = input("

>>:

").strip()

9if len(cmd) ==0:continue

10 client.send(cmd.encode('

utf-8'))

11 cmd_res_size = client.recv(1024)#

接收命令結果的長度

12print("

命令結果大小:

",cmd_res_size)

13 received_size =014#

received_data = b''

15while received_size

1617 data = client.recv(1024)

18 received_size += len(data)#

每次收到的有可能小於1024,所以必須用len判斷19#

print(data.decode())

20print

(received_size)

21else:22

print("

cmd res receive done...

",received_size)

2324

#cmd_res = client.recv(1024)

2526

#print(cmd_res)

2728 client.close()

view code

python 網路程式設計學習 套接字socket

以前也學過套接字程式設計,這次想系統全面的學習下python網路程式設計的使用。做這個,為檢測進度,也為後續留下筆記和足跡。socket 常用函式 socket.gethostname socket.gethostbyname import socket host socket.gethostnam...

Python網路程式設計學習筆記一 socket模組

coding utf 8 主要測試python網路程式設計中socket模組的使用 涉及到的技術點 套接字 面向連線的還有非面向連線套接字 tcp面向連線 udp非面向連線 1 匯入socket 2 建立socket socket三要素 1 socket family,2 socket type 3...

Python學習之路

python 十分鐘入門 python 菜鳥教程 pycharm安裝numpy python 檔案讀取 with open xml path,r as fr content fr.read python讀取檔案時提示 unicodedecodeerror gbk codec can t decode...