簡化版聊天工具

2021-08-26 15:18:54 字數 968 閱讀 2159

專案名稱

:簡化版聊天工具

專案描述

這個專案的主要實現邏輯

伺服器端

伺服器端運算元據庫,維護兩張表,乙個是使用者資訊表(使用者名稱,密碼,註冊時間,登入ip等),用來進行使用者註冊以及登入資訊的驗證,乙個是訊息記錄表(訊息傳送者,接受者,傳送時間,內容),用來查詢聊天記錄

功能實現

使用者註冊:查詢資料庫中是否存在待註冊的使用者名稱,存在,註冊失敗,不存在,插入一條新的記錄

檢視聊天記錄:從資料庫中返回響應的聊天記錄並返回。單人聊天記錄的查詢只需找到符合傳送者或者接受者的記錄,多人聊天記錄只需要查詢接受者是空的所有記錄

客戶端

客戶端實現簡單,只是簡單的傳送請求,接受響應,並列印

主線程負責傳送各種請求訊息(註冊,登入,聊天,查詢)

子執行緒負責接收伺服器端的所有資料,並呈現個使用者

主要用到了哪些技術

tcp(考慮到使用者數量龐大的問題,qq採用的是udp)

多執行緒(執行緒通訊):互斥鎖,對鍊錶的訪問需要互斥的訪問

資料庫(mysql)

i/o復用,主線程既要監聽連線埠處理使用者連線,又要監聽已經建立連線的埠,處理使用者請求,epoll  et

專案缺陷?

沒有使用執行緒池,而是動態的建立執行緒,效能不高

用乙個佇列去管理所有的請求,主線程負責監聽多有的埠,並且接受請求的資料放到請求佇列中

建立乙個執行緒池(用陣列儲存執行緒),執行緒池啟動之後,裡面的每乙個執行緒不停的從請求佇列中通過競爭的方式獲得請求任務,然後呼叫請求的處理方法(

在乙個請求內部封裝請求的處理方法,將請求封裝成乙個物件,裡面包含請求的資料和處理方法)

即時聊天工具

聊天室客戶端 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system...

Python聊天工具

import socket import sys import time import getopt from threading import thread class webchat 輸出幫助資訊 def usage self print help info python webchat.py ...

web開啟聊天工具

href skype chat 開始 skype 文字聊天a href skype userinfo 檢視 skype 資料a href skype add 新增到 skype 聯絡人列表a href skype call 開始 skype 語音呼叫a href skype voicemail 使用...