实现一个多任务udp聊天器

多任务udp聊天器任务图.png

需求

编写一个有2个线程的程序
线程1用来接收数据然后显示
线程2用来检测键盘数据然后通过udp发送数据
总结多任务程序的特点

import socket
import threading

def send_msg(udp_socket):
    '''获取键盘数据 并且将其发送给对方 '''
    while True:
        msg = input('\n请输入要发送的数据:')
        dest_ip = input('\n请输入对方的ip地址:')
        dest_port = int(input('\n请输入对方的port:'))
        udp_socket.sendto(msg.encode('utf-8'),(dest_ip,dest_port))

def recv_msg(udp_socket):
    while True:
        recv_msg = udp_socket.recvfrom(1024)
        recv_ip = recv_msg[1]
        recv_msg = recv_msg[0].decode('utf-8')
        print('>>>%s:%s'%(str(recv_ip),recv_msg))

def main():
    udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    udp_socket.bind(('',7788))
    t = threading.Thread(target=recv_msg,args=(udp_socket,))
    t.start()
    # 使用主线程来检测键盘数据并且发送
    send_msg(udp_socket)

if __name__ == '__main__':
    main()
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,282评论 8 265
  • 11.1 引言 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个UDP数据报,并组装成一...
    张芳涛阅读 2,973评论 1 6
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,384评论 6 174
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,872评论 11 349
  • tolua.type 返回一个 C++ 对象的类型描述字符串。 local node=display.newNod...
    曾令伟阅读 2,159评论 0 0

友情链接更多精彩内容