udp实现多线程

多线程聊天软件

由于 UDP 采用无连接模式,可知 UDP 服务器在接收到客户端发来的数据之前,是不知道客户端的地址的,因此必须是客户端先发送数据,服务器后响应数据。而 TCP 则不同,TCP 服务器接受了客户端的连接后,既可以先向客户端发送数据,也可以等待客户端发送数据后再响应。

import threading
import socket

udp_socket=None

def send():

“”" 发送信息函数"""

while True:
    sendinfo="小帅哥快来玩呀"
    udp_socket.sendto(sendinfo.encode("utf-8"),("192.168.159.128",7777))


def rece():

“”“接受信息函数”""

while True:
    data,address_info=udp_socket.recvfrom(1024)
    print("发送人: %s,接受信息: %s"(address_info,data.decode("utf-8")))

def main_f():

“”“主函数”""
#声明全局变量

global udp_socket

创建socket

udp_socket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

立即回收端口号

# udp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
#kill-9

绑定地址

udp_socket.bind(("",34567))

接受发送信息(多线程方式)

sendthread=threading.Thread(target=send)
recethread=threading.Thread(target=rece)

开启线程

sendthread.start()
recethread.start()

#关闭socket

# udp_socket.close()

if name == ‘main’:
main_f()

猜你喜欢

转载自blog.csdn.net/qq_44090577/article/details/89377968