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操作Elasticsearch数据索引的教程
Apr 08 Python
python通过post提交数据的方法
May 06 Python
python创建进程fork用法
Jun 04 Python
Python入门教程之运算符与控制流
Aug 17 Python
python中常用的九种预处理方法分享
Sep 11 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
浅谈Python接口对json串的处理方法
Dec 19 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 Python
PyTorch 导数应用的使用教程
Aug 31 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
JS实现根据当前文字选择返回被选中的文字
2014/05/21 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
Python的randrange()方法使用教程
2015/05/15 Python
python中私有函数调用方法解密
2016/04/29 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
儿童python练习实例
2018/05/27 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
pandas创建DataFrame的7种方法小结
2020/06/14 Python
简约控的天堂:The Undone
2016/12/21 全球购物
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
创业计划书撰写原则
2014/01/25 职场文书
小区门卫管理制度
2014/01/29 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
2014幼儿园教育教学工作总结
2014/12/17 职场文书
护士个人总结范文
2015/02/13 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
Python集合的基础操作
2021/11/01 Python
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers