1、server.py
#coding=utf-8
# 测试Socket
import socket
server = socket.socket() #初始化
ip_port = ('127.0.0.1', 8081)
server.bind(ip_port) #绑定ip和端口
server.listen(10) #监听,设置最大数量是10
print("开始等待接收客户端数据----")
while True:
conn, addr = server.accept() #获取客户端地址
print(conn, addr)
print("客户端来数据了")
while True:
data = conn.recv(1024) #接收数据
print("接受的数据:", data)
if not data:
print("客户端丢失")
break
conn.send(data) #返回数据
server.close() #关闭socket
2、client.py
#coding=utf-8
# 测试Socket
import socket
client = socket.socket() #初始化
ip_port = ('127.0.0.1', 8081) #ip和端口
client.connect(ip_port) #连接服务器
while True:
msg = input(">>:").strip()
if len(msg) == 0 : continue
client.send(msg.encode()) #发送数据
data = client.recv(1024) #接收数据
print("返回的数据:", data.decode())
client.close()
3、开启两个IDLE (Python 3.7 64-bit),各自执行server.py、client.py。


4、ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
原因及解决办法:
a、Windows 防火墙拦截,需要把Windows 防火墙关闭。进入“控制面板\所有控制面板项\Windows 防火墙”,关闭Windows 防火墙。
b、在Python的IDLE运行客户端和服务器的代码,出现这样的错误,是因为它们公用了同一个进程。打开一个IDLE,运行服务器代码。再打开一个IDLE,运行客户端代码。(注意:是重新打开一个IDLE窗口,而不是在第一步的IDLE窗口Open打开)。这样才可以运行两个进程,实现进程间进行通信。Socket是指同一计算机的进程间或者不同计算机之间的通信。
