套接字socket标准:
位于:应用层--(socket抽象层)--传输层 之间
#Servre import socket phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #第一步:初始化socket phone.bind(('127.0.0.1',8080)) #第二步:绑定端口 phone.listen(5) #第三步:监听端口 conn, client_add = phone.accept() #第四步:接收客户端的connect连接请求 while True: #数据循环 try: data=conn.recv(1024) #第五步:接收客户端传来的数据信息 if len(data) == 0:break conn.send(data.upper()) #第六步:给客户端回复信息 print(data) except ConnectionResetError: break #传输数据关闭 conn.close() #第七步:传输数据关闭 #连接关闭 # phone.close() #第八步:连接关闭 #为了用户端和服务端能够互相交互延长时间: #将发送和接收数据写入到while里面(即建立一个通信循环)
#Client import socket phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) phone.connect(('127.0.0.1',8080)) while True: msg=input('输入发送的内容:') if len(msg) == 0:continue phone.send(msg.encode('utf-8')) #只能传二进制bytes,所以要编码 data=phone.recv(1024) print(data) phone.close()
为了实现和多个客户端进行通信交互:所以在外服务端accept上面加一个while循环