服务端
import socket # 导入 socket 模块
# 建立一个服务端
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(('0.0.0.0', 8989)) #绑定要监听的端口
server.listen(5) #开始监听 表示可以使用五个链接排队
while True:# conn就是客户端链接过来而在服务端为期生成的一个链接实例
conn,addr = server.accept() #等待链接,多个链接的时候就会出现问题,其实返回了两个值
print(conn, addr)
while True:
try:
data = conn.recv(1024) #接收数据
if not data: break
print('recive:',data.decode()) #打印接收到的数据
conn.send(data) #然后再发送数据
except ConnectionResetError as e:
print('关闭了正在占线的链接!')
break
conn.close() # 关闭连接
客户端
import socket# 客户端 发送一个数据,再接收一个数据
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #声明socket类型,同时生成链接对象
ip_address = socket.gethostbyname(socket.gethostname())#获取本地IP
print(ip_address)
client.connect(('127.0.0.1', 8989)) #建立一个链接,连接到本地的6969端口
# while True:
msg = "这里是服务器1"
client.send(msg.encode('utf-8')) #发送一条信息 python3 只接收btye流
data = client.recv(1024) #接收一个信息,并指定接收的大小 为1024字节
print('recv:',data.decode()) #输出我接收的信息
# client.send(data)#将收到的内容发送
client.close() #关闭这个链接