聊天程式的初步想法

2021-04-08 21:58:05 字數 2193 閱讀 1423

這個程式是簡單的聊天程式

程式功能:點對點的聊天,群聊(也就是

ip多播),還有是點對點的檔案傳輸。

檔案傳輸要支援斷點續傳。

程式模式:

1:客戶首先連線到服務端。

服務端記錄下客戶端的ip2

3:客戶端與客戶端進行連線。4:每

15

:在客戶端正常離開時,服務端會收到客戶端的斷開通知。

簡單資料通訊協議:

frm_sign

1

位元組幀標誌

固定為『x』

frm_type

1

位元組幀型別

frame body

幀體frm_end

2

位元組幀結束

固定為『e』

幀型別資料

新使用者加入(cà

s)

10新使用者加入(sà

c)

50使用者離開(cà

s)

11使用者離開(sà

c)

51使用者傳送聊天訊息(

c—>c)20

使用者傳送聊天訊息(cà

s)

21使用者傳輸檔案

(c—>c) 30

傳輸檔案的應答(cà

c)

31使用者聊天(幀型別20 21) 幀體結構

欄位名位元組數

描述frm _len

uint

幀體資料長度

user_ip

dword

傳送此訊息使用者的

ip位址

user_port

ushort

傳送此訊息使用者的埠號

user_name

15

位元組傳送此訊息使用者的使用者名稱

frm _data

聊天資料

新使用者加入

使用者離開

( 幀型別10 50 11 51

)

欄位名位元組數

描述frm _len

uint

幀體資料長度

user_ip

dword

離開或新使用者的

ip位址

user_port

ushort

離開或新使用者的埠號

user_name

15

位元組離開或新使用者的使用者名稱

如果離開或新使用者不止乙個,後面還可以再跟

user_ip user_port user_name

使用者傳輸檔案

(c—>c)(

幀型別30

)

frm _len

uint

幀體資料長度

frm_ count

uint

總幀數

frm_id

uint

幀編號

frm _data

檔案資料

使用者傳輸檔案應答

(c—>c)(

幀型別31

)

frm _len

uint

幀體資料長度

frm_ count

uint

總幀數

frm_id

uint

未接收到的幀編號,每個編號

2個位元組,如果有

n個未收到,就有

n*2個位元組

伺服器端設計:

伺服器端採用

iocp

完成埠模型。

伺服器端要求:穩定性好,能支援多個客戶端。在伺服器端程式完成後,要寫乙個測試程式,用於測試服務的在處理多個客戶端(

1024

以上),在發大資料量的伺服器能否正確工作。

同時要考慮如何處理外網

ip,跨網段問題,

最好能採用

p2p技術)。

設計要求:伺服器端的工作是任務簡單,不能讓服務端的承擔太多的任務。

客戶端設計:

功能要求:點對點聊天,群聊和傳輸檔案。

建立兩個

socket

,csendsocket

和crecvsocket

乙個用於傳送資料,乙個用於接收資料。採用

udp方式。

埠設定:聊天

5000

傳檔案

5100

以上是我的初步想法,希望大家能幫忙完善一下。

QT 聊天程式

一.聊天程式 qt實現的介面 網路的資料通訊 伺服器端 建立使用者ui 建立伺服器socket 接受客戶連線 為每個各戶建立執行緒處理客戶資料 分析設計的一般規律 1.用例 2.事件流 3.找物件,並且抽象類 4.設計類本身 5.設計類關係 泛化關係,關聯關係 6.設計模式優化設計 設計介面 qma...

MFC UDP 聊天程式

udp 使用者資料報協議 英語 user datagram protocol,縮寫為udp 又稱使用者資料報文協議,是乙個簡單的面向資料報的傳輸層協議 1 採用 udp 設計聊天程式,實際上是對 winsocket 函式進行封裝。資料庫端採用檔案儲存使用者名稱,密碼等資訊。使用者資料結構體 user...

C flash socket 聊天程式

很多人在研究flash的socket中經常會出現一些問題,所以提供乙個別人的程式 出來給大家參考.這是vs2003下的c 程式的主要源 經過測試的。不包含一些自動生成的 這些 是根據乙個開源的c socket程式改編的,而且已經寫了比較詳細的注釋了。c 源 windows 應用的窗體程式 form1...