首页 > 其他 > 详细

一个简单的IM聊天程序Pie IM(以后会更新)

时间:2020-07-29 22:23:32      阅读:67      评论:0      收藏:0      [点我收藏+]

这个程序用多线程,实现设备之间的聊天,支持win10通知,欢迎下载

依赖的第三方库

win10toast

代码

将以下代码写入任意.py文件

 1 print(Welcome to use Pie IM)
 2 print(2020 By 人工智障)
 3 
 4 import socket
 5 import tkinter as tk
 6 import os
 7 
 8 print(==================================================)
 9 
10 def logIn():
11     ip=enterIp.get()
12     logInWin.destroy()
13     global myip
14     myip=ip
15     print(ip)
16     os.system("python ./chat.py %s"%(ip))
17     exit()
18 
19 logInWin=tk.Tk()
20 logInWin.geometry(360x360)
21 logInWin.resizable(0,0)
22 logInWin.title(Pie IM)
23 title=tk.Label(logInWin,text=Pie IM,font=(zpix,30),width=15,height=3,bg=blue,fg=white)
24 title.pack()
25 enterIpTip=tk.Label(logInWin,text=请输入对方的IP地址,font=(幼圆,15))
26 enterIpTip.pack(pady=20)
27 global login_enterIp
28 enterIp=tk.Entry(logInWin,width=40)
29 enterIp.pack()
30 btn=tk.Button(logInWin,text=登录,bd=2,font=(幼圆,15),command=logIn)
31 btn.pack(pady=25)
32 logInWin.mainloop()

将以下代码写入chat.py

 1 import tkinter as tk
 2 from tkinter import *
 3 import tkinter.messagebox as msgbox
 4 import time
 5 import socket
 6 import threading
 7 import sys
 8 from win10toast import ToastNotifier
 9 
10 udp_socket=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
11 udp_socket.bind((sys.argv[1],8080))
12 
13 ip=sys.argv[1]
14 port=8081
15 
16 def sendMsg():#发送消息
17     print(doing:sendMsg())
18     msg=str(msgEnter.get(1.0,END))
19     print(msg)
20     print(type(msg))
21     strMsg=我:+time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
22     print(strMsg)
23     msgList.insert(END,strMsg+\n,greencolor)#插入年月日
24     msgList.insert(END,msg+\n)#输入的内容,0.0表示文本开始
25     msgList.insert(END,\n)
26     msgEnter.delete(1.0,END)#删除中间刚输入的内容
27     udp_socket.sendto(msg.encode(utf-8),(ip, port))
28 
29 def recvMsg():
30     while True:
31         print(doing:recvMsg())
32         print(正在接收...)
33         recv_data=udp_socket.recvfrom(8080)
34         msg=recv_data[0].decode(utf-8)
35         strMsg=对方: + time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
36         print(strMsg)
37         msgList.insert(END,strMsg+\n,greencolor)#插入年月日
38         msgList.insert(END,msg+\n)#输入的内容,0.0表示文本开始
39         msgList.insert(END,\n)
40         toaster = ToastNotifier()
41         toaster.show_toast(ip,msg)
42 
43 win=tk.Tk()
44 win.geometry(480x560)
45 win.title(test title)
46 win.iconbitmap("./icons/icon-mini.ico")
47 
48 msgList=tk.Text(win,font=(幼圆,13))
49 msgList.pack(fill=BOTH,expand=True)
50 
51 sendBtn=tk.Button(win,text=发送,bd=2,font=(等线,15),height=2,command=sendMsg)
52 sendBtn.pack(fill=X,expand=True)
53 
54 msgEnter=Text(win,width=1,font=(幼圆,13))
55 msgEnter.pack(fill=BOTH,expand=True,pady=0)
56 
57 t1=threading.Thread(target=recvMsg,name=Pie IM消息接收服务)
58 t1.start()
59 win.mainloop()

 

一个简单的IM聊天程序Pie IM(以后会更新)

原文:https://www.cnblogs.com/TotoWang/p/pie_im.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!