- 网络 udp
- 多任务 线程
- 多任务 线程、进程
- 网络 tcp
- 飞鸽传书 完善
- 多任务 协程
- 正则表达式
- 网络通信过程、http 协议
- Web 服务器 并发服务器
- WSGI、mini Web 框架
- 装饰器、mini Web 框架 路由
- MySQL 基本使用
- MySQL 查询
- MySQL 与 Python 交互
- mini Web 框架 添加 MySQL 功能
- 其它知识
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
飞鸽传书 上下线 命令版
飞鸽传书-上下线-命令版
from socket import *
import time
import os
udp_socket = None
feiQ_port = 2425
feiQ_version = 1
feiQ_user_name = "dongge-test"
feiQ_host_name = "mac-pro"
broadcast_ip = "255.255.255.255"
# 飞秋command
IPMSG_BR_ENTRY = 0x00000001
IPMSG_BR_EXIT = 0x00000002
def create_udp_socket():
"""创建udp套接字"""
global udp_socket
# 1. 创建socket
udp_socket = socket(AF_INET, SOCK_DGRAM)
# 2. 绑定2425端口
udp_socket.bind(("", feiQ_port))
# 3. 设定允许广播
udp_socket.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
def send_broadcast_online():
"""发送上线广播"""
# 1:1500816649:dongge-test:mac-pro:1:dongge-test
msg = "%d:%d:%s:%s:%d:%s" % (feiQ_version, int(time.time()), feiQ_user_name, feiQ_host_name, IPMSG_BR_ENTRY, feiQ_user_name)
# print(msg) # for test
# 因为windows是使用是gbk编码所以需要编码为gbk
udp_socket.sendto(msg.encode('gbk'), (broadcast_ip, feiQ_port))
def send_broadcast_offline():
"""发送下线广播"""
# 1:1500816649:dongge-test:mac-pro:2:dongge-test
msg = "%d:%d:%s:%s:%d:%s" % (feiQ_version, int(time.time()), feiQ_user_name, feiQ_host_name, IPMSG_BR_EXIT, feiQ_user_name)
# print(msg) # for test
# 因为windows是使用是gbk编码所以需要编码为gbk
udp_socket.sendto(msg.encode('gbk'), (broadcast_ip, feiQ_port))
# -----新添加-----
def command_menu():
"""打印命令功能菜单"""
os.system("clear") # 清屏
print(" 飞鸽传书(python)-v1.0")
print(" 1: 发送上线广播")
print(" 2: 发送下线广播")
print(" 0: 退出飞秋")
print("")
command_str = input("请输入数字:")
return command_str
def main():
"""完成整体控制"""
# 1. 创建udp套接字
create_udp_socket()
# 2. 在while循环中获取用户的指令,然后进行相应的操作
while True:
# 打印功能菜单
command_str = command_menu()
if command_str == "1":
# 发送上线广播
send_broadcast_online()
elif command_str == "2":
# 发送下线广播
send_broadcast_offline()
elif command_str == "0":
# 先发送下线提醒
send_broadcast_offline()
# 程序退出
exit()
if __name__ == '__main__':
main()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论