python_udp_多人聊天室_简单版
2024-08-28 05:00:06
udp-一定是client端先发送数据。
server.py
import socket
friend_lst = {'alex':'32','太白':'33'}
sk =socket.socket(type=socket.SOCK_DGRAM)
sk.bind(('127.0.0.1',9001))
while True:
msg,addr = sk.recvfrom(1500)
msg = msg.decode('utf-8')
name,message = msg.split('|',1)
print('\033[1;%sm %s:%s\033[0m'%(friend_lst.get(name,'30'),name,message))
content = input('>>>')
sk.sendto(content.encode('utf-8'),addr)
# 补充知识:
# 1-字典的 dic.get(k,default_v)=v 方法: 如果k在字典中存在就返回它对应的v,如果不存在就返回一个设置的默认的default_v
# 2-print的字符串的颜色:EVA的微博
client_1.py
import socket
name = '太白'
# name = '大壮'
sk = socket.socket(type=socket.SOCK_DGRAM)
while True:
content = input('>>>')
if content.upper() == 'Q':
break
content = '%s|%s'%(name,content)
sk.sendto(content.encode('utf-8'),('127.0.0.1',9001))
msg = sk.recv(1024).decode('utf-8')
if msg.upper() == 'Q':
break
print(msg)
client_2.py
import socket
name = 'alex'
sk = socket.socket(type=socket.SOCK_DGRAM)
while True:
content = input('>>>')
if content.upper() == 'Q': break
content = '%s|%s'%(name,content)
sk.sendto(content.encode('utf-8'),('127.0.0.1',9001))
msg = sk.recv(1024).decode('utf-8')
if msg.upper() == 'Q': break
print(msg)
最新文章
- 透视 HTML子元素的margin-top样式会应用在父元素上的原由
- TNS-12518 &; Linux Error:32:Broken pipe
- Eclipse中快速删除空行
- android studio入门
- android SharedPreferences 轻量级存储!
- PHP中9大缓存技术总结
- PHP防止重复提交表单(helloweba网站经典实例)
- 【QT】找茬外挂制作
- python运维开发之路第一天
- Git常用操作汇总(转)
- 【Kafka源码】KafkaConsumer
- My97 DatePicker普通调用
- 深入解析Java反射-invoke方法
- Python3的List操作和方法
- Linux内核进程
- Flutter 布局(九)- Flow、Table、Wrap详解
- uvalive 4960 Sensor Network
- day26 第二阶段共享
- Mac下用户名、计算机名、个人目录名修改
- Altium中坐标的导出及利用坐标快速布局
热门文章
- 每日一题 LeetCode 486. 预测赢家 【递推】【前缀和】【动态规划】
- 【linux】基础命令一
- 实验一 HTML基本标签及文本处理
- 是时候更新手里的武器了—Jetpack最全简析
- LR Optimization-Based Estimator Design for Vision-Aided Inertial Navigation
- centos8安装redis
- selenium 浏览器标签切换
- Gitlab 11.9.1 高可用教程
- log4cplus库的properties文件配置
- Django( 学习第五部 Django之模板语法)