python使用udp实现聊天器功能


Posted in Python onDecember 10, 2018

聊天器简易版

使用udp实现一个简单的聊天器程序,要求如下:

•在一个电脑中编写1个程序,有2个功能
•1.获取键盘数据,并将其发送给对方
•2.接收数据并显示
•并且功能数据进行选择以上的2个功能调用

例子程序如下:

import socket
def send_message(udp_socket):
    # 输入对方的ip/port
    dest_ip = input("请输入对方的ip:")
    dest_port = int(input("请输入对象的port:"))
    # 读取输入的数据
    send_data = input('请输入要发送的数据:')
    # 发送数据
    dest_addr = (dest_ip, dest_port)
    udp_socket.sendto(send_data.encode('GBK'), dest_addr)
def recv_message(udp_socket):
    # 接收数据
    recv_data = udp_socket.recvfrom(1000)
    print("%s:%s" % (recv_data[1], recv_data[0].decode("utf-8")))  
def main():
    # 创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    while True:
        send_message(udp_socket)
        recv_message(udp_socket)
    # 关闭
    udp_socket.close()
if __name__ == '__main__':
    main()

运行程序:

python使用udp实现聊天器功能

在聊天助手中进行交互:

python使用udp实现聊天器功能

聊天器灵活版

上面实现的聊天虽然可以使用,但是不太方便,我们希望是发送消息还是接受消息,可以自己选择,这样就方便的多。如下的程序运行输入三个命令来选择要执行的操作,程序如下:

•1表示发送数据
•2表示接收数据
•0表示退出

import socket
def send_message(udp_socket):
    # 输入对方的ip/port
    dest_ip = input("请输入对方的ip:")
    dest_port = int(input("请输入对象的port:"))
    # 读取输入的数据
    send_data = input('请输入要发送的数据:')
    # 发送数据
    dest_addr = (dest_ip, dest_port)
    udp_socket.sendto(send_data.encode('GBK'), dest_addr)
def recv_message(udp_socket):
    # 接收数据
    recv_data = udp_socket.recvfrom(1000)
    print("%s:%s" % (recv_data[1], recv_data[0].decode("utf-8")))  
def main():
    # 创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    while True:
        op = input("请输入您要执行的操作:")
        if op == "1":
            send_message(udp_socket)
        elif op == "2":
            recv_message(udp_socket)
        elif op == "0":
            break
        else:
            print("您的输入有误!")
    # 关闭
    udp_socket.close()
if __name__ == '__main__':
    main()

在ubuntu安装网络助手

将下载好的网络助手的安装包(mNetAssist-release-amd64.deb)拷贝到桌面,执行如下操作:

$ cd ~/Desktop
$ sudo dpkg -i mNetAssist-release-amd64.deb
[sudo] password for xxxx:
Selecting previously unselected package mnetassist.
(Reading database ... 182763 files and directories currently installed.)
Preparing to unpack mNetAssist-release-amd64.deb ...
Unpacking mnetassist (0.1.1) ...
Setting up mnetassist (0.1.1) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) ...
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.59ubuntu1) ...

如果没有抱错,安装成功,点击左上角的启动栏,输入mnetAssist

python使用udp实现聊天器功能

点击图标启动应用即可。

总结

以上所述是小编给大家介绍的python使用udp实现聊天器功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python单例模式实例详解
Mar 01 Python
详解Python里使用正则表达式的ASCII模式
Nov 02 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
python网络应用开发知识点浅析
May 28 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
Python configparser模块配置文件过程解析
Mar 03 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
python3.7调试的实例方法
Jul 21 Python
Python logging模块进行封装实现原理解析
Aug 07 Python
利用python做数据拟合详情
Nov 17 Python
Pyhton爬虫知识之正则表达式详解
Apr 01 Python
Python面向对象之类和对象实例详解
Dec 10 #Python
详解Django-auth-ldap 配置方法
Dec 10 #Python
Python网页正文转换语音文件的操作方法
Dec 09 #Python
python 使用 requests 模块发送http请求 的方法
Dec 09 #Python
Python实现八皇后问题示例代码
Dec 09 #Python
python中的tcp示例详解
Dec 09 #Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 #Python
You might like
php Mysql日期和时间函数集合
2007/11/16 PHP
PHP抽象类 介绍
2012/06/13 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
jquery 事件执行检测代码
2009/12/09 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
Vue2.0表单校验组件vee-validate的使用详解
2017/05/02 Javascript
解决ionic和angular上拉加载的问题
2017/08/03 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
vue+高德地图实现地图搜索及点击定位操作
2020/09/09 Javascript
实例说明Python中比较运算符的使用
2015/05/13 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
python实现拼接图片
2020/03/23 Python
Python定义函数实现累计求和操作
2020/05/03 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
python能在浏览器能运行吗
2020/06/17 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
2021/02/16 Python
Reformation官网:美国女装品牌
2018/09/14 全球购物
暑期社会实践学生的自我评价
2014/01/09 职场文书
社团活动总结怎么写
2014/06/30 职场文书
工伤私了协议书范本
2014/11/24 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
六一活动主持词
2015/06/30 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
SpringBoot集成Redis的思路详解
2021/10/16 Redis