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深入学习之闭包
Aug 31 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
python 根据时间来生成唯一的字符串方法
Jan 14 Python
python输入多行字符串的方法总结
Jul 02 Python
Python列表与元组的异同详解
Jul 02 Python
Python编程学习之如何判断3个数的大小
Aug 07 Python
tensorflow如何批量读取图片
Aug 29 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
Django Auth用户认证组件实现代码
Oct 13 Python
Python自动化办公Excel模块openpyxl原理及用法解析
Nov 05 Python
pandas 按日期范围筛选数据的实现
Feb 20 Python
python关于集合的知识案例详解
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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
Java中final关键字详解
2015/08/10 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
jQuery+CSS实现一个侧滑导航菜单代码
2016/05/09 Javascript
React快速入门教程
2017/01/17 Javascript
setTimeout学习小结
2017/02/08 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
python益智游戏计算汉诺塔问题示例
2014/03/05 Python
Python库urllib与urllib2主要区别分析
2014/07/13 Python
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
numpy中索引和切片详解
2017/12/15 Python
python3实现微型的web服务器
2019/09/03 Python
python 画图 图例自由定义方式
2020/04/17 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
CSS3 选择器 基本选择器介绍
2012/01/21 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
介绍一下UNIX启动过程
2013/11/14 面试题
新闻网站实习自我鉴定
2013/09/25 职场文书
试用期转正后的自我评价
2014/09/21 职场文书
活着观后感
2015/06/03 职场文书
销售人员管理制度
2015/08/06 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android