udp协议
udp协议一个实例化就可以发送端口了
socket (type=socket.SOCK_DGRAM)
sendto 需要写一个对方的地址
recvfrom 接收消息和地址
close 关闭服务/连接
sever端
# 信息交流摸版
import socket
friend_list = {'alex':'32','太白':'33'} # 可以知道对面的名字
sk = socket.socket(type= socket.SOCK_DGRAM) # udp协议
sk.bind(('10.61.1.4',9000)) # 绑定一个端口
# msg = sk.recv(1024)# 使用recv只会受到消息
while True: # 可以多次发送消息
msg,addr = sk.recvfrom(1500)
# recvfrom 可以接收消息和获得对面的ip地址
# 确定字节,
# 还可以获取对面的it地址就是addr
msg = msg.decode('utf-8') # 受到对面的消息,对对面的消息进行解码
name,message = msg.split('|') # 将用户名和其他的名字隔开
print('\033[1;%sm %s:%s\033[0m' % (friend_list.get(name,'30'),name,message))
content = input('>>>')
sk.sendto(content.encode('utf-8'),addr)
if content.upper() == '再见':break
client端
import socket
name = 'alex'
sk = socket.socket(type=socket.SOCK_DGRAM)
while True: # 可以多次收消息了
content = input('请输入内容\n>>>')
if content.upper() == '再见': break
content = '%s|%s'%(name,content)
sk.sendto(content.encode('utf-8'),('10.61.1.4',9000)) # 对面的端口号
msg = sk.recv(1024).decode('utf-8') #
if msg.upper() == '退出': break
print(msg)