# 服务器端
import socket
HOST = socket.gethostname()
PORT = 10888
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print('Client\'s Address: ', addr)
while True:
data = conn.recv(1024)
if not data:
break
print("Receive data: ", data.decode('utf-8'))
conn.send(data)
conn.close()
# 客户端
import socket
HOST = socket.gethostname()
PORT = 10888
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
data = '你好!'
while data:
s.sendall(data.encode('utf-8'))
data = s.recv(512)
print("Receive from server:\n", data.decode('utf-8'))
data = input('please inputa info:\n')
s.close()
IDLE中F5运行服务器和客户端代码,提示:
Traceback (most recent call last):
File "E:/Python/Demo/第14章/14-2.py", line 7, in <module>
s.connect((HOST, PORT))
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
网络查找发现只要服务器端跟客户端不同时在IDLE中运行就OK,我把服务器端用cmd命令形式来运行,客户端还是运行在IDLE,运行正常: