什么是socket?
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部。
Socket通信套路
当通过socket建立起2台机器的连接后,本质上socket只干2件事,一是收数据,一是发数据,没数据时就等着。
客户端
import socket
# 1买手机
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# print(phone)
# 2拨号
phone.connect(('127.0.0.1',8082))
# 发,收消息
while True:
msg = input('>>:').strip()
phone.send(msg.encode('utf-8'))
data = phone.recv(1024)
print(data)
# 4 关闭
phone.close()
服务端
import socket
1买手机
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print(phone)
2绑定手机卡
phone.bind((‘127.0.0.1’,8082)) # 0-65535:0-1024给操作系统用
3开机
phone.listen(5)
#4 等电话连接
print(‘starting…’)
conn,client_addr = phone.accept()
print(client_addr)
5 收发消息
while True:
data= conn.recv(1024) # 单位 :bytes 2 1024 代表最大接受1024个bytes
print(‘客户端的数据’,data)
conn.send(data.upper())
6 挂电话
conn.close()
7 关机
phone.close()