Python实现多任务版的udp聊天器

本文实例为大家分享了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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python使用udp实现聊天器功能

    聊天器简易版 使用udp实现一个简单的聊天器程序,要求如下: •在一个电脑中编写1个程序,有2个功能 •1.获取键盘数据,并将其发送给对方 •2.接收数据并显示 •并且功能数据进行选择以上的2个功能调用 例子程序如下: import socket def send_message(udp_socket): # 输入对方的ip/port dest_ip = input("请输入对方的ip:") dest_port = int(input("请输入对象的port:"))

  • python实现的多任务版udp聊天器功能案例

    本文实例讲述了python实现的多任务版udp聊天器.分享给大家供大家参考,具体如下: 说明 编写一个有2个线程的程序 线程1用来接收数据然后显示 线程2用来检测键盘数据然后通过udp发送数据 要求 实现上述要求 总结多任务程序的特点 参考代码: import socket import threading def send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" while True: # 1. 从键盘输入

  • Python实现多任务版的udp聊天器

    本文实例为大家分享了Python实现多任务版的udp聊天器,供大家参考,具体内容如下 一.案例示例 二.案例说明 1.编写一个有2个线程的程序. 2.线程1用来接收数据然后显示. 3.线程2用来检测键盘数据然后通过udp发送数据. 三.参考代码 import socket import threading def send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" while True: # 1. 从键盘输入数

  • python开发简易版在线音乐播放器

    在线音乐播放器,使用python的Tkinter库做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过urllib.urlopen模块打开网址,使用Json模块进行数据的解析,最后使用mp3play库对音乐进行在线播放,也可以同时下载mp3,开发环境:python2.7 , 附上源代码如下: # _*_ coding:utf-8 _*_ from Tkinter import * import tkMessageBox import urllib import

  • python使用Tkinter实现在线音乐播放器

    本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下 1.先使用Tkinter库写界面 2.写点击按钮触发的事件 (1).使用网易音乐的api,返回数据包装成json格式数据,解析数据 (2)涉及到多线程的问题未解决,一个软件默认打开一个线程,当播放歌曲时,显示界面就会卡掉,导致python停止工作 代码: #coding=utf-8 from Tkinter import * import tkMessageBox import urllib import json

  • Python制作简易聊天器,搭建UDP网络通信模型

    目录 1.导入模块 2.创建一个套接字对象 3.发送数据到ubuntu系统中 4.发送任意数据给网络条数助手 5.循环发送数据 6.循环接受数据 循环接收 将相关的功能抽离出来做成一个函数 7.启动 最后运行代码 前言: 互联网的本质是什么?其实就是信息的交换.就比如我们常用的QQ.微信等.那么如何将自己的信息发送到其他人的电脑上呢? 那就需要借助网络模型来完成这样的事情了.今天就带领大家使用UDP网络模型来完成一个简单的聊天器 分享内容: python中的套接字实现 如何与Ubuntu建立通信

  • 利用Python实现命令行版的火车票查看器

    接口设计 一个应用写出来最终是要给人使用的,哪怕只是给你自己使用.所以,首先应该想想你希望怎么使用它?让我们先给这个小应用起个名字吧,既然及查询票务信息,那就叫它tickets好了.我们希望用户只要输入出发站,到达站以及日期就让就能获得想要的信息,所以tickets应该这样被使用: $ tickets from to date 另外,火车有各种类型,高铁.动车.特快.快速和直达,我们希望可以提供选项只查询特定的一种或几种的火车,所以,我们应该有下面这些选项: -g 高铁 -d 动车 -t 特快

  • Python多任务版静态Web服务器实现示例

    目录 概述 实现步骤 1.导入threading模块 2.设置端口号复用, 程序退出端口立即释放 3.当客户端和服务器建立连接程,创建子线程 4.设置守护主进程 5.启动子线程 代码实现 概述 使用多线程,让web服务器可以同时处理多个用户的访问.当客户端和服务端建立连接成功,创建子线程,使用子线程专门处理客户端的请求,防止主线程阻塞.把创建的子线程设置成为守护主线程,防止主线程无法退出. 实现步骤 1.导入threading模块 import threading 2.设置端口号复用, 程序退出

  • Python socket模块实现的udp通信功能示例

    本文实例讲述了Python socket模块实现的udp通信功能.分享给大家供大家参考,具体如下: socket介绍 socket(简称 套接字) 是进程间通信的一种方式,它与其他进程间通信的一个主要不同是: 它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于 Socket 来完成通信的,例如我们每天浏览网页.QQ 聊天.收发 email 等等. 模拟udp_socket客户端(发送端):udp_client.py #coding=utf-8 import socket # 获

  • python基于socket实现的UDP及TCP通讯功能示例

    本文实例讲述了python基于socket实现的UDP及TCP通讯功能.分享给大家供大家参考,具体如下: Server: import socket address = ('127.0.0.1', 31500) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(address) while True: data, addr = s.recvfrom(2048) if not data: print "client has ex

随机推荐