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 相关文章推荐
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
Python编程判断这天是这一年第几天的方法示例
Apr 18 Python
PyTorch上实现卷积神经网络CNN的方法
Apr 28 Python
详解python3中zipfile模块用法
Jun 18 Python
Python selenium根据class定位页面元素的方法
Feb 26 Python
python opencv实现证件照换底功能
Aug 19 Python
django admin 自定义替换change页面模板的方法
Aug 23 Python
Python 线程池用法简单示例
Oct 02 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
详解selenium + chromedriver 被反爬的解决方法
Oct 28 Python
python爬取微博评论的实例讲解
Jan 15 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
PHP与MySQL开发的8个技巧小结
2010/12/17 PHP
PHP mcrypt可逆加密算法分析
2011/07/19 PHP
PHP安全性漫谈
2012/06/28 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
php中__toString()方法用法示例
2016/12/07 PHP
Yii2 批量插入、更新数据实例
2017/03/15 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
2015/04/21 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
使用 webpack 插件自动生成 vue 路由文件的方法
2019/08/20 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Pycharm更换python解释器的方法
2018/10/29 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
python global关键字的用法详解
2019/09/05 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
美国最大的船只买卖在线市场:Boat Trader
2018/08/04 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
离婚协议书的范本
2015/01/27 职场文书
结婚纪念日感言
2015/08/01 职场文书
详解nginx进程锁的实现
2021/06/14 Servers
教你用python实现12306余票查询
2021/06/30 Python