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实现两个文件合并功能
Apr 01 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
python+numpy+matplotalib实现梯度下降法
Aug 31 Python
Python装饰器简单用法实例小结
Dec 03 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
python绘制直方图和密度图的实例
Jul 08 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
Python日期格式和字符串格式相互转换的方法
Feb 18 Python
Django 构建模板form表单的两种方法
Jun 14 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 Python
pandas中DataFrame数据合并连接(merge、join、concat)
May 30 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 开发环境配置(测试开发环境)
2010/04/28 PHP
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
react-router4 嵌套路由的使用方法
2017/07/24 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
详解easyui基于 layui.laydate日期扩展组件
2018/07/18 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
python实现异步回调机制代码分享
2014/01/10 Python
python求crc32值的方法
2014/10/05 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
小学教师师德反思
2014/02/03 职场文书
服装采购员岗位职责
2014/03/15 职场文书
保护环境标语
2014/06/09 职场文书
助学贷款贫困证明
2014/09/23 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
课外活动实习计划
2015/01/19 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
对象析构函数__del__在Python中何时使用
2022/03/22 Python