热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享python实现简易聊天对话框

python教程分享python实现简易聊天对话框实例为大家分享了python实现简易聊天对话框的具体代码,供大家参考,具体内容如下效果图: 客户端代码: im

python教程分享python实现简易聊天对话框实例为大家分享了python实现简易聊天对话框的具体代码,供大家参考,具体内容如下

效果图: 

python实现简易聊天对话框

客户端代码: 

import tkinter as tk  from tkinter import scrolledtext  import socket  import threading  from datetime import datetime     def tcp_recv(sock):      while true:          str = sock.recv(1024).decode("utf-8")          show_info(str)  def send_func(sock):      str = send_msg.get("0.0", "end")      sock.send(str.encode("utf-8"))      show_info(str)     def show_info(str):      now = datetime.now()      s_time = now.strftime("%y-%m-%d %h:%m:%s")      str = str.rstrip()      if len(str) == 0:          return -1      send_msg.delete("0.0", "end")      temp = s_time + "n    " + str + "n"      show_msg.insert(tk.insert, "%s" % temp)     msfOnt= '微软雅黑' #字体  fOntsize= 18 #字体大小  sock = socket.socket(socket.af_inet,socket.sock_stream)  sock.connect(("127.0.0.1",8888))     mainwindow = tk.tk()  mainwindow.title("客户端")  mainwindow.minsize(400,400)  show_msg = scrolledtext.scrolledtext(mainwindow,fOnt=(msfont,fontsize))  show_msg.place(%s 已连接n"%addr[0])  send_msg = scrolledtext.scrolledtext(mainwindow,fOnt=(msfont,fontsize))  send_msg.place(发  送",bg="orange",fg="white",                           command=lambda:send_func(sock))  button_send.place(width=100,height=40,x=300,y=360)     t = threading.thread(target=tcp_recv,args=(sock,))  t.start()  tk.mainloop()

服务器代码:

import tkinter as tk  from tkinter import scrolledtext  import socket  import threading  from datetime import datetime     def tcp_recv(sock):      while true:          str = sock.recv(1024).decode("utf-8")          show_info(str)  def send_func(sock):      str = send_msg.get("0.0", "end")      sock.send(str.encode("utf-8"))      show_info(str)     def show_info(str):      now = datetime.now()      s_time = now.strftime("%y-%m-%d %h:%m:%s")      str = str.rstrip()      if len(str) == 0:          return -1      send_msg.delete("0.0", "end")      temp = s_time + "n    " + str + "n"      show_msg.insert(tk.insert, "%s" % temp)     msfOnt= '微软雅黑' #字体  fOntsize= 18 #字体大小  sock = socket.socket(socket.af_inet,socket.sock_stream)  sock.bind(("127.0.0.1",8888))  sock.listen(5)     mainwindow = tk.tk()  mainwindow.title("服务器")  mainwindow.minsize(400,400)  show_msg = scrolledtext.scrolledtext(mainwindow,fOnt=(msfont,fontsize))  show_msg.place(发  送",bg="orange",fg="white",                           command=lambda:send_func(s))  button_send.place(width=100,height=40,x=300,y=360)     s,addr = sock.accept()  t = threading.thread(target=tcp_recv,args=(s,))  t.start()  tk.mainloop()  

以上就是python教程分享python实现简易聊天对话框的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<编程笔记>。

需要了解更多python教程分享python实现简易聊天对话框,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • WPF开发心率检测大数据曲线图的高性能实现方法
    本文介绍了在WPF开发中实现心率检测大数据曲线图的高性能方法。作者尝试过使用Canvas和第三方开源库,但性能和功能都不理想。最终作者选择使用DrawingVisual对象,并结合局部显示的方式实现了自己想要的效果。文章详细介绍了实现思路和具体代码,对于不熟悉DrawingVisual的读者可以去微软官网了解更多细节。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • 原文链接:Python:获取“3年前的今天”的日期时间Python:getdatetimefor3yearsagotoday在Python中,如何获取3年前的今天的datetime ... [详细]
  • 动量|收益率_基于MT策略的实战分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于MT策略的实战分析相关的知识,希望对你有一定的参考价值。基于MT策略的实战分析 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • DOM事件大全
    1.事件:js与html的交互就是通过事件的,观察者模式2.事件流:从页面中接收事件的顺序IE::事件冒泡流,事件冒泡,事件从最具体的元素接收,然后逐级向上传播,主流浏览器都支持N ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了Vue2.5开发去哪儿网App从零基础入门到实战项目相关的知识,希望对你有一定的参考价值。第1章课程介绍本章 ... [详细]
  • jsdocument.documentElement document.body
    其实之前一直对于document.documentElement和document.body不是很清楚,查了下资料-在html和xhtml中定义的差别..要获取当前页面的滚动条纵 ... [详细]
author-avatar
手机用户2502887447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有