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迭代和迭代器详解
Nov 10 Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
Python实现FM算法解析
Jun 18 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
python能自学吗
Jun 18 Python
Python将字典转换为XML的方法
Aug 01 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
python基础之文件处理知识总结
May 23 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脚本的10个技巧(5)
2006/10/09 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
php将html转为图片的实现方法
2017/05/19 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
js解决movebox移动问题
2016/03/29 Javascript
jQuery绑定事件的几种实现方式
2016/05/09 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
python字符串替换示例
2014/04/24 Python
python的类方法和静态方法
2014/12/13 Python
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
详解django.contirb.auth-认证
2018/07/16 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
浅谈PYTHON 关于文件的操作
2019/03/19 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
2014信息公开实施方案
2014/02/22 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
法律服务所工作总结
2015/08/10 职场文书
预备党员表决心的话
2015/09/22 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
Python中npy和mat文件的保存与读取
2022/04/24 Python