python实现的多任务版udp聊天器功能案例
本文实例讲述了python实现的多任务版udp聊天器。分享给大家供大家参考,具体如下:
说明
编写一个有2个线程的程序
线程1用来接收数据然后显示
线程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()
更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
相关推荐
-
Python实现基于C/S架构的聊天室功能详解
本文实例讲述了Python实现基于C/S架构的聊天室功能.分享给大家供大家参考,具体如下: 一.课程介绍 1.简介 本次项目课是实现简单聊天室程序的服务器端和客户端. 2.知识点 服务器端涉及到asyncore.asynchat和socket这几个模块,客户端用到了telnetlib.wx.time和thread这几个模块. 3.所需环境 本次课中编写客户端需要用到wxPython,它是一个GUI工具包,请先使用下面的命令安装: $ sudo apt-get install python-wxt
-
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+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
本文实例讲述了Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能.分享给大家供大家参考,具体如下: [吐槽] 网上的代码害死人,看着都写的言之凿凿,可运行就是有问题. 有些爱好代码.喜欢收藏代码的朋友,看到别人的代码就粘贴复制过来.可是起码你也试试运行看啊大哥 [正文] 昨日修改运行了UDP协议的C/S聊天程序,可是TCP协议的怎么都不行.各种试,各种坑. 做了下面几个修改后,终于可以了: 1.对发送.接收的信息,分别进行编码和解码 2.客户端的第10行bind改为c
-
教你用Python创建微信聊天机器人
最近研究微信API,发现个非常好用的python库:wxpy.wxpy基于itchat,使用了 Web 微信的通讯协议,实现了微信登录.收发消息.搜索好友.数据统计等功能. 这里我们就来介绍一下这个库,并在最后实现一个聊天机器人. 有没有很兴奋?有没有很期待? 好了,接下来,开始我们的正题. 准备工作 安装非常简单,从官方源下载安装 pip install -U wxpy 或者从豆瓣源安装 pip install -U wxpy -i "https://pypi.doubanio.com/sim
-
快速实现基于Python的微信聊天机器人示例代码
最近听说一个很好玩的图灵机器人api,正好可以用它做一个微信聊天机器人,下面是实现 # test.py import requests import itchat #这是一个用于微信回复的库 KEY = '8edce3ce905a4c1dbb965e6b35c3834d' #这个key可以直接拿来用 # 向api发送请求 def get_response(msg): apiUrl = 'http://www.tuling123.com/openapi/api' data = { 'key' :
-
python实现多人聊天室
本文实例为大家分享了python实现多人聊天室的具体代码,供大家参考,具体内容如下 一.目的 以实现小项目的方式,来巩固之前学过的Python基本语法以及相关的知识. 二.相关技术 1.wxpython GUI编程 2.网络编程 3.多线程编程 4.数据库编程 5.简单的将数据导出到Excel表 三.存在的漏洞以及不足 1.由于数据库编码的问题,无法使用中文. 2.在客户端关闭后,其相关的线程仍然存在于服务器的用户线程队列中,所以服务器会错误地往已关闭的客户端传送信息. 3.客户端初始登录并加载
-
Python基于Socket实现的简单聊天程序示例
本文实例讲述了Python基于Socket实现的简单聊天程序.分享给大家供大家参考,具体如下: 需求:SCIENCE 和MOOD两个人软件专业出身,厌倦了大众化的聊天软件,想着自己开发一款简易的聊天软件,满足他们的个性化需求,又不失"专业水准",Talk is easy, try to code it. 技术:socket,详细可参考前文:Python Socket实现简单TCP Server/client功能 语言:python 尽管socket区分服务器和客户端,但是在聊天程序中两
-
Python socket C/S结构的聊天室应用实现
Python socket C/S结构的聊天室应用 服务端: #!/usr/bin/env python #coding:utf8 import socket,select def broadcast_data (sock,message): for socket in conn_list: if socket != server_socket and socket != sock : try : socket.send(message) except : socket.close() conn
-
使用Python AIML搭建聊天机器人的方法示例
AIML全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由RichardS. Wallace 博士和Alicebot开源软件组织于1995-2000年间发明创造的.AIML是一种为了匹配模式和确定响应而进行规则定义的 XML 格式. AIML的设计目标如下: AIML应当为大众所易学易会. AIML应当使最小的概念得以编码使之基于L.I.C.E支持一种刺激-响应学科系统组件. AIML应当兼容XM
-
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 PyWebIO实现网页版数据查询器
界面的制作一直是 Python 的痛!使用 Python 制作桌面端界面是非常痛苦的过程(又难学又难看).不过,Python 已经出现了几个基于web前端的库,他们的基本机制大同小异,如果对 界面操作性没有太大要求,那么这些库就比较适合你 . 这个系列基于 pywebio 的一系列实战应用,让我们从实战中学习这个库的使用! 本节最终效果动图: 选择 excel 文件 输出文件第一个工作表的数据(DataFrame) 安装库: pip install -U pywebio 输出文本 先输出一段内容
-
python基于TCP实现的文件下载器功能案例
本文实例讲述了python基于TCP实现的文件下载器功能.分享给大家供大家参考,具体如下: 服务器 参考代码如下: from socket import * import sys def get_file_content(file_name): """获取文件的内容""" try: with open(file_name, "rb") as f: content = f.read() return content except
-
Python实现的爬取豆瓣电影信息功能案例
本文实例讲述了Python实现的爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 本案例的任务为,爬取豆瓣电影top250的电影信息(包括序号.电影名称.导演和主演.评分以及经典台词),并将信息作为字典形式保存进txt文件.这里只用到requests库,没有用到beautifulsoup库 step1:首先获取每一页的源代码,用requests.get函数获取,为了防止请求错误,使用try...except.. def getpage(url): try: res=requests.get
-
Python使用 TCP协议实现智能聊天机器人功能
编写聊天程序的服务端代码和客户端代码.完成后,先启动服务端代码,然 后启动客户端程序输人问题,服务端可以返回相应的答案.要求服务端代码具 有一定的智能,能够根据不完整的问题识别客户端真正要问的问题. 程序运行后界面如下图所示. 源代码: 服务端 Sever.py: from os.path import commonprefix from posixpath import split import socket #建立聊天回复字典 words={'how are you?':'Fine,than
-
python基于C/S模式实现聊天室功能
最简单的模式,C/S模式实现聊天室 从半双工开始,何谓半双工?半双工即是说双方可以互发消息,但一次只能一个用户发送. 只要稍微会点socket编程的人都会觉得很简单,所以过过场,直接上代码. 服务器端代码: from socket import * from time import ctime HOST = '' PORT = 4568 BUFSIZE = 1024 ADDR = (HOST,PORT) tcpSerSocket = socket(AF_INET, SOCK_STREAM) tc
-
Python制作简易聊天器,搭建UDP网络通信模型
目录 1.导入模块 2.创建一个套接字对象 3.发送数据到ubuntu系统中 4.发送任意数据给网络条数助手 5.循环发送数据 6.循环接受数据 循环接收 将相关的功能抽离出来做成一个函数 7.启动 最后运行代码 前言: 互联网的本质是什么?其实就是信息的交换.就比如我们常用的QQ.微信等.那么如何将自己的信息发送到其他人的电脑上呢? 那就需要借助网络模型来完成这样的事情了.今天就带领大家使用UDP网络模型来完成一个简单的聊天器 分享内容: python中的套接字实现 如何与Ubuntu建立通信
-
Python趣味挑战之实现简易版音乐播放器
一.前言 今天我们将用Python来创建一个属于自己的音乐播放器.为此,我们将使用三个软件包: Tkinter:用于UI Pygame:播放音乐 os:用于访问系统文件 在这里我们将看到创建音乐播放器的每个步骤,我们将代码分为四个部分. 二.实现过程 在第一部分中,我们将导入所有软件包.其次,我们将创建UI.第三,我们从系统中导入所有音乐并在APP应用程序中进行展示.第四,设计一个有助于播放特定音乐的功能. 在导入所有这三个软件包之前,我们必须在系统中安装这些软件包. pip install p
随机推荐
- Lua教程(七):数据结构详解
- JQuery实现列表中复选框全选反选功能封装(推荐)
- iOS长按UIlabel实现可复制功能
- 解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
- PHP file_get_contents设置超时处理方法
- 在Python中使用异步Socket编程性能测试
- MSI之制作免输序列号安装包的方法
- Sqlview动态发布地图图层的方法
- Debian中完全卸载MySQL的方法
- js分页显示div的内容
- 金山反病毒20050126_日报
- Java使用File类遍历目录及文件实例代码
- Java的微信开发中使用XML格式和JSON格式数据的示例
- php max_execution_time执行时间问题
- Javascript计算时间差的函数分享
- C#中抽象类与接口的区别详解
- 嘴唇皮肤为何会干裂?
- MySQL存储引擎MyISAM与InnoDB区别总结整理
- 详解Linux命令与文件查找
- 基于Go和Gin的环境配置方法