套接字通信——作业
-
客户端
import socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # phone.connect(('47.103.218.45', 8081)) phone.connect(('127.0.0.1', 8080)) while True: msg = input("请输入命令(退出[exit]):").strip() if len(msg) == 0:continue if msg == 'exit': phone.close() break phone.send(msg.encode('utf-8')) server_data = phone.recv(1024) print('服务器:', server_data.decode('utf-8')) -
服务器端
import socket import os phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # phone.bind(('172.17.24.180', 8081)) phone.bind(('127.0.0.1', 8080)) phone.listen(5) while True: print('正在等待连接...') conn, client_addr = phone.accept() print('连接建立成功!') while True: try: client_data = conn.recv(1024) cmd = client_data.decode('utf-8') if ' ' in cmd: cmd = cmd.split() create_path = os.path.dirname(__file__) if cmd[0] == 'mkdir': create_path = os.path.join(create_path, cmd[1]) os.mkdir(create_path) conn.send(f'文件夹已创建'.encode('utf-8')) elif cmd[0] == 'mkfile': create_path = os.path.join(create_path, cmd[1]) with open(create_path, 'wt') as f: f.write('') f.close() conn.send(f'文件已创建'.encode('utf-8')) elif cmd == 'ls': dir_list_path = os.path.dirname(__file__) conn.send(f'{os.listdir(dir_list_path)}'.encode('utf-8')) else: conn.send(f'命令{cmd}不存在'.encode('utf-8')) except Exception: break conn.close() phone.close()

浙公网安备 33010602011771号