from socket import *
import threading
def recv_msg(udp_socket):
"""
接收数据并显示
:return:
"""
while True:
recv_data, dest_addr = udp_socket.recvfrom(1024) #注意:recvfrom是等待接收,不需要地址
recv_data = recv_data.decode("utf-8")
print("{}:{}".format(dest_addr, recv_data))
def send_msg(udp_socket, dest_addr):
while True:
send_data = input(">").encode("utf-8")
udp_socket.sendto(send_data, dest_addr)
def main():
udp_socket = socket(AF_INET,SOCK_DGRAM) # 创建套接字
# 绑定本地信息
local_addr = ("", 8888)
udp_socket.bind(local_addr)
# 获取对方ip和port
dest_ip = input("dest ip:")
dest_port = input(input("dest port:"))
dest_addr = (dest_ip, dest_port)
t_recv = threading.Thread(target=recv_msg, args=(udp_socket,))
t_send = threading.Thread(target=send_msg, args=(udp_socket, dest_addr))
t_recv.start()
t_send.start()
if __name__ == "__main__":
main()
Python51_案例:多任务版UDP聊天器
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 一、线程介绍 1.1、线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最...
- 网络编程概述 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。 有人说,20世纪最伟大的发明不是计...