python群聊工具實現(上)

2020-12-23 葉子陪你玩編程

相信都有使用過聊天工具聊過天,不管使用QQ還是微信,首先得註冊一個帳號,聊天前,你得加對方為好友,之後才可以聊天。

前面也寫過一片使用socket通信的文章,在裡面講到,兩臺機器要聊天,首先其中一方得知道知道另一方的地址和埠號,然後連接上才可以進行通信。

但是我們的微信和QQ每次可不是固定埠和地址的,因為有時候我們用電腦,有時後用手機,或者手機很多換著來,按照前面的思路,那一個QQ用戶是如何找到另外一個QQ用戶的呢?

過程其實是這樣的,QQ客戶端會請求一個連接給伺服器,伺服器接收後,知道QQ端用戶上線,把qQQ端用戶的帳號跟目前的ip會記錄下來,放在在線列表裡或者其他的地方,然後每隔幾分鐘或者幾秒鐘給QQ端用戶發送心跳包,問他是否還在線,來確保QQ端用戶的最 新狀態,這裡客戶端與伺服器的通信方式是udp。

今天要實現的是一個群聊小程序,程序有一個服務端和一個客戶端,客戶端有一個下面如下:

當用戶連接上伺服器後,伺服器就會給用戶發送恭喜你已經加入python學習群(後面還會實現在左側顯示用戶的名字),當還有其它用戶繼續加入時,會通知已經加入的用戶,說某個用戶加入python學習群,之後不管哪個用戶發送消息,大家的窗口中都會顯示出消息來,就好像大家在一個群裡一樣(更高級的還可以選擇在線人員,點對點在兩人私聊)。

下面是初版的運行效果圖,服務端為了顯示效果,保留了終端輸出,理論上是躲在後臺什麼也不用顯示的。

不斷有用戶加入,新用戶加入會說恭喜你加入,其它用戶會被通知某某加入群聊。

當其中任意一個用戶發送消息,其它用戶都會同步收到。

實現思路:

1.先實現一個簡單的終端顯示連接的功能,保證最小功能可以實現。

2.使用QtCreator製作一個UI用戶界面。

3.實現UI界面本地的消息發送和接收。

4.將本地的接收替換成socket接收。

5.加入多線程和消息發送,實現既可以顯示UI界面,發送消息和接收消息。

(全文完)

python字符的編碼與解碼

python滑鼠連點器-測試版

python遞歸算法(下)

教你實現一個gif處理軟體(下)

相關焦點

  • 使用python實現一個簡單計算器
    但是並沒有做過什麼實際的案例,主要原因是因為使用tikinter做界面比較麻煩,沒有可視化的設計來的快,就像我之前用的QT設計工具,就非常方便。如果做一些簡單的界面,使用tkinter還是很方便的,畢竟是python自帶的庫。
  • python 程序打包成桌面exe程序
    上一篇文章講了如何實現一個簡單的計算器程序,肯定你也想能不能做成像電腦桌面軟體一樣,不用安裝python運行環境也可以運行,同時也可以分享給有需要的人。重新運行pyinstaller -F -i cal.ico cal.py生成文件,這裡添加上了-i 表示加入圖標。結果如下固定到任務欄,看圖標外觀像模像樣的沒啥區別,點擊打開我承認的確有點醜。
  • Cve-maker是一個python工具,用於在當前或遠程計算機上檢測,查找,編譯和執行CVE.
    導讀:今天給大家推薦一個比較有用的(蟒蛇工具) 工具來源於:GitHub。紀念U盤資源附送可以在第三篇文章內查看。用於後期優質工具的網絡推薦。所以一味的給答案並不是最好的解決方法,最好的方法就是你要站在新手的思維上進行思路對接。想辦法讓新手明白學習思路,才能更好的促進技術進步。
  • 「微信輔助」解放代購雙手,python實現微信好友驗證拉群一步到位
    哎,是一把鼻涕一把淚的擦在我身上,感受到對方的心情,我決定為對方專門開發,實現微信好友驗證拉群一步到位實現思路:1.加好友可以通過驗證碼來區分是否是需要港代的同學;2.發現是目標人物後,則需要為其引流到代購群中,實時獲取代購信息;(其實本來是想來直接通過wypy
  • Python 實現視覺特效:秒變超級賽亞人
    思路在Python代碼中通過opencv啟用攝像頭拍攝,對獲取到的圖像通過dlib模塊進行面部識別,之後利用PIL模塊進行圖像處理= int(d/2)ligntning = Image.open(lightlist[random.randint(0, 3)])relight = ligntning.resize((lightsize, lightsize))im.paste(relight,(int(x1-d*60/236),int(y1-d*380/236)),relight
  • python開發環境搭建總結和helloword
    python開發語言的熱度持續不減,很多小夥伴們都在摸索著前進。今天,我們就從python開發環境搭建開始聊起。幫助大家快速進入python學習狀態。Python下載直接從python官網,下載適合操作的系統的安裝包。
  • Python實現陰陽師電腦端自動組隊刷御魂
    Python實現陰陽師電腦端自動組隊刷御魂1 開發環境搭建Python3.7安裝下載地址: https://www.python.org/ftp/python/3.7.0/python-3.7.0-amd64.exe依賴包安裝pip install pywin32Python代碼獲取exe程序相關信息的模塊pip install pyautogui
  • 學Python有意思嗎?自學可以出去工作嗎?
    可以加1547251666,好友,具體聊一下學習的方法。首先,python語言的最基本的特點就是優雅,沒錯一門彙編語言,這裡用優雅來形容,舉個簡單的例子:對x,y的值進行互換,在python中其代碼只有一行:x,y=y,x,你再也找不到比這更優雅的交換賦值的方法了;另一方面其可讀性是任何語言也無法比擬的;再之其強大的繪圖能力也讓人敬佩,除了基本的turtle製圖、Graphics圖形庫,還可引用廣泛的第三方庫,這些可以畫出世界上最美的圖形
  • (Python實現)
    4.基本原理基本的貼圖方法在本博前面的文章《用python實現旋轉地球》中講過了,具體可以參考下面的連結,這裡重點講雙層素材的動態效果。這樣帶來的問題是,地球旋轉360°後雲圖只旋轉了180°,必須加倍到720°才能實現連續運動。具體的雲層透明度設置,參數需根據實際效果進行調整。5.GIF壓縮順便給大家介紹一個比較好用的壓縮GIF的在線工具,連結如下。
  • 最前線|微信支持「備註群聊名稱」,但微信群的變化不止這一點
    這一次上線的功能是微信群支持「備註群聊名稱」,一個方便管理微信群的小功能。用戶可以通過「群聊設置-備註」進行修改,所備註的群聊名稱「僅自己可見」。完成備註後,備註名會替代掉原群名,而原群名會以較小字樣出現在備註名的下方。隨著微信好友數量不斷增加(今年1月微信放開5000人好友限制),微信群的數量也在不斷增多。
  • python迭代器和生成器總結——新的斐波那契數列
    python迭代器題目:給定一個序列,循環輸出序列中的每個元素。通過一個for循環就可以實現,如下:for循環遍歷結果事實上,python中,提供了另一個工具來幫助遍歷,該工具稱之為迭代器。可以通過iter函數來獲取一個迭代器,通過next函數來獲取下一個元素。
  • 誤創建企業微信群聊?企業微信怎麼解散群聊?
    企業微信和個人微信一樣,可以創建群,如果是你自己創建的群,你是群主,後期由於各種各樣的原因,需要解散企業微信群,操作非常簡單。點擊企業微信群聊的右上角,可以進入群聊信息詳情頁面,在該頁面找到群管理功能,再往下就有「解散群聊」的功能,解散後,所有群成員就會自動移出群聊,你就不用再管了。
  • 既然工具千篇一律,那就試試有趣的聊唄唄!
    群聊的工具千篇一律,有趣的聊唄萬裡挑一。想運營好自己的社群,社群管理一定不能掉鏈子。自從wetool被封后,憑藉實用的社群管理功能的聊唄,迅速引發了運營小夥伴們的關注。為什麼一款小小的社群運營工具如此重要?那就要先聊聊社群了。
  • 怎麼在微信上找到群聊
    我們在微信上可以創建一個群聊和好友們一起聊天,但是有時候總是找不到群聊。下面的經驗裡面冰冰就和大家分享一下怎麼在微信上找到群聊的方法。首先要在手機上面登錄自己的微信帳號, 然後在聊天窗口上面點擊群聊的信息,如圖所示:進入到群聊窗口以後,在窗口上面點擊右上角的頭像,如圖所示:點擊頭像以後進入到群聊信息窗口,在窗口上面上拉菜單,在菜單上面將保存到通訊了開關打開,這樣群聊信息就會保存到通訊錄,如圖所示:群聊信息保存到通訊錄以後,在進入到微信的時候點擊屏幕上面的通訊錄,如圖所示:
  • Python 優秀函數庫組成的最佳陣容
    歡迎關注YaK芽課工具可以幫助人們解決難題,提高效率。合理的使用工具可以使人類的未來有更多的可能。對古時文人來講,筆墨紙硯,是當時具有生產力輸出的四大工具。對程式設計師來講,當代的 「文房四寶」 不外乎是:筆記本,大屏幕,機械鍵盤,人體工學椅,Google,Github 這幾種。下文簡單介紹一下 python 的幾個最為重要的數據分析模塊。Numpy 是 Python 提供數值計算的基礎模塊,也是 Python 生態中歷史最為悠久的模塊。
  • Python實現視頻裁剪添加水印功能
    今天來實現一個利用Python的moviepy類庫裁剪視頻的功能。寫這個功能的初衷是想批量的裁剪一下視頻,下面一起來看一下代碼吧!python目前我們實現的是將單獨一個視頻進行裁剪。本次我們將目前視頻截取一小段內容,並為其添加一個水印圖片。
  • 在Python面前,任何搜尋引擎都得一邊待去!
    雖然說現在搜尋引擎很多,但百度早就失去「百度一下你就知道」的功能了,經常網上一搜,全是沒用的雞肋信息,很多軟體也沒啥實際用處,氣壞了我們這些熱鍋上的螞蟻!
  • Python接口測試實戰丨如何實現特殊字符集的自動化測試?
    特殊字符極其豐富,手工測試往往需要耗費大量成本,接口自動化測試因其實現簡單、維護成本低、容易提高覆蓋率等特點,越來越受重視。Python由於可移植性好、第三方庫豐富、上手簡單而成為一種便捷高效的接口自動化測試工具。
  • Python入門小迷宮,走完這個迷宮,就能掌握python編程基礎
    這是一個很神奇的迷宮,走完這個迷宮就能掌握python基礎。其實,這是一個用python做的迷宮小遊戲,非常簡單,但對於python初學者來說,還是有一定的挑戰性,但TONOW有源碼和教程,只要跟著python迷宮小遊戲的教程和相應的源碼,不僅很容易就能自己開發出這個遊戲,還能在這個過程中,掌握python編程的基礎哦!
  • Scratch、Python學哪個?兒童編程怎麼學?全面解析編程(上)
    「編程」和Scratch、python、C++ 是什麼關係?Scratch是一種編程用的工具, Python 和C++是專業的程式語言也可以理解為編程工具。ScratchScratch 是美國麻省理工大學開發的一款專門面向兒童學習編程的工具軟體。分為兩個系系列,一個系列Jr系列面向幼兒學員,主要在PAD上用。另外一個系列是面向年齡稍大的兒童,現在的版本是3.0版。