Python入门学习-DAY31-socket

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()

猜你喜欢

转载自www.cnblogs.com/xvchengqi/p/9556198.html