当前位置:网站首页 > 技术博客 > 正文

udp接口编程



# -*- coding:utf-8 -*- from socket import * from time import ctime, sleep import threading class ChatRoomPlus: def __init__(self): # 全局参数配置 self.encoding = "utf-8" # 使用的编码方式 self.broadcastPort = 7788 # 广播端口 # 创建广播接收器 self.recvSocket = socket(AF_INET, SOCK_DGRAM) self.recvSocket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) self.recvSocket.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) self.recvSocket.bind(('', self.broadcastPort)) # 创建广播发送器 self.sendSocket = socket(AF_INET, SOCK_DGRAM) self.sendSocket.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) # 其他 self.threads = [] def send(self): """发送广播""" print("UDP发送器启动成功...") self.sendSocket.sendto("*加入了聊天室".encode(self.encoding), ('255.255.255.255', self.broadcastPort)) while True: sendData = input("请输入需要发送的消息:") self.sendSocket.sendto(sendData.encode(self.encoding), ('255.255.255.255', self.broadcastPort)) # print("【%s】%s:%s" % (ctime(), "我", sendData))  sleep(1) def recv(self): """接收广播""" print("UDP接收器启动成功...") while True: # 接收数据格式:(data, (ip, port)) recvData = self.recvSocket.recvfrom(1024) print("【%s】[%s : %s] : %s" % (ctime(), recvData[1][0], recvData[1][1], recvData[0].decode(self.encoding))) sleep(1) def start(self): """启动线程""" t1 = threading.Thread(target=self.recv) t2 = threading.Thread(target=self.send) self.threads.append(t1) self.threads.append(t2) for t in self.threads: t.setDaemon(True) t.start() while True: pass if __name__ == "__main__": demo = ChatRoomPlus() demo.start()

  • 上一篇: linux安装automake
  • 下一篇: hsqldb与mysql区别
  • 版权声明


    相关文章:

  • linux安装automake2025-09-19 22:01:00
  • openapi3.0规范2025-09-19 22:01:00
  • java的内部类和外部类2025-09-19 22:01:00
  • datedif函数的详细用法2025-09-19 22:01:00
  • pcm格式音频2025-09-19 22:01:00
  • hsqldb与mysql区别2025-09-19 22:01:00
  • 电脑硬盘搜索功能不能用2025-09-19 22:01:00
  • 时间序列分析预测模型2025-09-19 22:01:00
  • 数据库设计怎么设计2025-09-19 22:01:00
  • 软件的发布2025-09-19 22:01:00