共计 962 个字符,预计需要花费 3 分钟才能阅读完成。
导读 | 这篇文章主要为大家详细介绍了 Python 实现多任务版的 udp 聊天器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 |
一、案例示例
二、案例说明
1、编写一个有 2 个线程的程序。
2、线程 1 用来接收数据然后显示。
3、线程 2 用来检测键盘数据然后通过 udp 发送数据。
三、参考代码
import socket
import threading
def send_msg(udp_socket):
"""获取键盘数据,并将其发送给对方"""
while True:
# 1. 从键盘输入数据
msg = input("\n 请输入要发送的数据:")
# 2. 输入对方的 ip 地址
dest_ip = input("\n 请输入对方的 ip 地址:")
# 3. 输入对方的 port
dest_port = int(input("\n 请输入对方的 port:"))
# 4. 发送数据
udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port))
def recv_msg(udp_socket):
"""接收数据并显示"""
while True:
# 1. 接收数据
recv_msg = udp_socket.recvfrom(1024)
# 2. 解码
recv_ip = recv_msg[1]
recv_msg = recv_msg[0].decode("utf-8")
# 3. 显示接收到的数据
print(">>>%s:%s" % (str(recv_ip), recv_msg))
def main():
# 1. 创建套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 2. 绑定本地信息
udp_socket.bind(("", 7890))
# 3. 创建一个子线程用来接收数据
t = threading.Thread(target=recv_msg, args=(udp_socket,))
t.start()
# 4. 让主线程用来检测键盘数据并且发送
send_msg(udp_socket)
if __name__ == "__main__":
main()
以上就是本文的全部内容,希望对大家的学习有所帮助
正文完
星哥玩云-微信公众号