Socket
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
模拟一个存在本地的服务器与客户端
服务器
import socket IP='192.168.13.118' PORT=8989 ADDRESS=(IP,PORT) BUFSIZE=1024 client={'192.168.13.131':'姚晓锋','192.168.13.235':'盛琪良'} #1.买手机,是用来接收链接请求,从而建立链接的 phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #2.插手机卡,设置服务端的IP地址与端口 phone.bind(ADDRESS) #3.开机,开启监视功能,链接池最大容量为5 phone.listen(5) #4.等待电话请求,等待客户端的请求 while True: conn,client_addr=phone.accept() # 5.收\发消息 data=conn.recv(BUFSIZE) print('%s:'%client[client_addr[0]],data.decode('utf-8')) #返回给客户端的信息 conn.send('我是你爸爸'.encode('utf-8')) #6.挂电话链接 conn.close()
客户端
import socket IP='192.168.13.118' PORT=8989 ADDRESS=(IP,PORT) BUFSIZE=1024 #1.买手机 phone=socket.socket(socket.AF_INET,socket.SOCK_STREAM) #2.拨号,连接服务器的IP,端口 phone.connect(ADDRESS) #3.发\收消息 phone.send('我一进来就看见常威在。。。'.encode('utf-8'))#只能发送bytes类型的 data=phone.recv(BUFSIZE) print('服务器返回的信息:',data.decode('utf-8')) #4.挂电话链接 phone.close()