python socket使用

2018-08-14   10:52:10

这篇先暂时这么写了……还没来得及设置任何样式

1、客户端

 1 import socket,os
 2 #创建套接字
 3 client = socket.socket()
 4 #连接一个套接字地址
 5 client.connect(('localhost',9999))
 6 while True:
 7     #输入一个DOS或者shell命令
 8     cmd = input(">> ").strip()
 9     if len(cmd) == 0: continue
10     client.send(cmd.encode("utf-8"))
11     data_size = client.recv(1024)
12     print("返回长度: ",data_size.decode())
13     recv_size = 0
14     recv_data = b''
15     #连续接收数据
16     while   recv_size != int(data_size.decode()):
17         data = client.recv(1024)
18         recv_size += len(data)
19         recv_data +=data
20     else:
21         #接收完成,输出结果
22         print(recv_data.decode())
23         print("recv done...",recv_size)
View Code

2、服务器端

 1 import socket,os
 2 server = socket.socket()
 3 #绑定并且监听该端口
 4 server.bind(('localhost',9999))
 5 server.listen()
 6 
 7 while True:
 8     #接收一个客户端的连接
 9     conn, addr = server.accept()
10     print("新连接",addr)
11     while True:
12         print("等待新连接")
13         data = conn.recv(1024)
14         if not data:
15             print("客户端已经断开连接")
16             break
17         print("开始发送数据")
18         cmd_res = os.popen(data.decode()).read() #接受字符串,读取字符串
19         if len(cmd_res) == 0:
20             cmd_res = 'cmd has no input...'
21         print("发送长度",len(cmd_res))
22         conn.send(str(len(cmd_res.encode("utf-8"))).encode("utf-8"))
23         print("执行指令", data)
24         conn.send(cmd_res.encode("utf-8"))
25         print("发送数据完成")
26         print(cmd_res)
View Code
posted @ 2018-08-14 10:53  快乐的打字员~  阅读(244)  评论(0编辑  收藏  举报