python实现udp聊天窗口


Posted in Python onMarch 31, 2020

要与对方实现通讯,有udp和tcp两种方式,像我们的qq,就是udp和tcp两种方式共存的,不过现在qq正在逐步的转化为tcp服务器。

下面是,用udp实现的聊天窗口.

import socket
def send_msg(upd_socket):
 """发送消息"""
 # 获取要发送的内容
 dest_ip = input("请输入对方的ip地址:")
 dest_port = int(input("请输入对方的端口号:"))
 send_data = input("请输入要发送的消息")
 upd_socket.sendto(send_data.encode("utf-8"), (dest_ip, dest_port))
def recv_msg(upd_socket):
 # 接收数据和显示
 recv_data = upd_socket.recvfrom(1024)
 print("%s:%s" % (recv_data[0].decode("utf-8"), str(recv_data[1])))
def main():
 # 创建套接字
 upd_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 # 绑定信息
 upd_socket.bind("", 7788)
 # 循环来进行处理事情
 while True:
  send_msg(upd_socket)
  recv_msg(upd_socket)
if __name__ == "__main__":
 main()

给大家推荐一种写代码的格式,像这样,我们首先构建好基本框架

def main():
 pass
 # 1.创建套接字
 # 2.绑定本地信息
 # 3.知道目标地址和端口号
 # 4.接收数据与显示
 # 5.关闭套接字
if __name__ == "__main__":
 main()

1. 这个是基本的步骤,我们首先构思好了,于是乎我们就开始写代表.代码相对比较固定,我们需要质疑的是,我们发送和接收数据的时候,是采用utf-8还是gbk的问题,假设我们是linux系统,目标是Windows系统,那么我们发送的数据是需要采用.encode(“gbk”)进行编码,而我们接受数据的时候,是.decode(“gbk”)进行解码,这样才能正确接受中文汉字.

2. 然后是为了使我们主程序看起来更加清晰,我们将发送消息和接受消息,包装成两个函数,分别是 def send_msg(upd_socket): def recv_msg(upd_socket): 注意,每当我们创建一个新的函数的时候,我们一定要想,这个函数需不需要参数.

3. 你可能会看到最后,发现我并没有写udp_socket.close()来关闭套接字,因为我们写到最后就会发现,我们并不需要调用close.

4. 在pyhton中,我们使用一个循环的时候,不要写1,要写True

更多关于python聊天功能的精彩文章请点击专题: python聊天功能汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
ptyhon实现sitemap生成示例
Mar 30 Python
python正则表达式中的括号匹配问题
Dec 14 Python
分享一个简单的python读写文件脚本
Nov 25 Python
Python模拟随机游走图形效果示例
Feb 06 Python
基于Python实现的微信好友数据分析
Feb 26 Python
详解Python中的四种队列
May 21 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
Apr 01 Python
python 进程 进程池 进程间通信实现解析
Aug 23 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
Python使用进程Process模块管理资源
Mar 05 Python
django queryset相加和筛选教程
May 18 Python
python 爬取天气网卫星图片
Jun 07 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
Mar 31 #Python
Python sorted排序方法如何实现
Mar 31 #Python
解决Django中checkbox复选框的传值问题
Mar 31 #Python
Python文本文件的合并操作方法代码实例
Mar 31 #Python
Python调用接口合并Excel表代码实例
Mar 31 #Python
Python如何批量获取文件夹的大小并保存
Mar 31 #Python
Django使用list对单个或者多个字段求values值实例
Mar 31 #Python
You might like
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
jQuery获取多种input值的简单实现方法
2016/06/20 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
原生js实现简单轮播图
2020/10/26 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
python爬虫入门教程之点点美女图片爬虫代码分享
2014/09/02 Python
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
Django视图和URL配置详解
2018/01/31 Python
Django 连接sql server数据库的方法
2018/06/30 Python
flask入门之表单的实现
2018/07/18 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
PyQt5实现五子棋游戏(人机对弈)
2020/03/24 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
python的json中方法及jsonpath模块用法分析
2019/12/06 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
幼师自我鉴定
2014/02/01 职场文书
保密协议书范本
2014/04/22 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
婚庆答谢词
2015/01/04 职场文书
大学生入党自传2015
2015/06/26 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript