Semasa belajar Python untuk membuat contoh soket kecil, saya mendapati bahawa masalah berikut akan berlaku selagi sendall digunakan.
server_demo:
#!/usr/bin/env python # _*_coding:utf8_*_ import socket obj_socket = socket.socket() # 绑定端口 obj_socket.bind(('127.0.0.1', 9999)) # 设置最大连接数 obj_socket.listen(5) while True: # 阻塞等待客户端连接 conn, address = obj_socket.accept() print(address, conn) # 在python2.7中可以直接发送字符串,但是在python3中都是字节 obj_socket.sendall(bytes('你好', encoding='utf-8'))
demo_klien:
#!/usr/bin/env python # _*_coding:utf8_*_ import socket obj_socket = socket.socket() obj_socket.connect(('127.0.0.1', 9999)) # 阻塞至服务器回复 最多接收1024bytes 如果超过会再次接收 res_bytes = obj_socket.recv(1024) res_str = str(res_bytes, encoding='utf-8') print(res_str) obj_socket.close()
Selepas mencari banyak penyelesaian, saya cuba mematikan tembok api, tetapi ia masih tidak berjaya.
Cubalah