在學(xué)習(xí)python做socket小例子的時候,發(fā)現(xiàn)只要是使用sendall就會出現(xiàn)下面的問題.
server_demo:
#!/usr/bin/env python
# _*_coding:utf8_*_
import socket
obj_socket = socket.socket()
# 綁定端口
obj_socket.bind(('127.0.0.1', 9999))
# 設(shè)置最大連接數(shù)
obj_socket.listen(5)
while True:
# 阻塞等待客戶端連接
conn, address = obj_socket.accept()
print(address, conn)
# 在python2.7中可以直接發(fā)送字符串,但是在python3中都是字節(jié)
obj_socket.sendall(bytes('你好', encoding='utf-8'))
client_demo:
#!/usr/bin/env python
# _*_coding:utf8_*_
import socket
obj_socket = socket.socket()
obj_socket.connect(('127.0.0.1', 9999))
# 阻塞至服務(wù)器回復(fù) 最多接收1024bytes 如果超過會再次接收
res_bytes = obj_socket.recv(1024)
res_str = str(res_bytes, encoding='utf-8')
print(res_str)
obj_socket.close()
搜了很多解決方案,我嘗試關(guān)閉了防火墻,但是還是沒有用。
走同樣的路,發(fā)現(xiàn)不同的人生
試下
obj_socket.sendall(bytes('你好', encoding='utf-8'))
換成:
conn.sendall(bytes('你好', encoding='utf-8'))