這個程式是簡單的聊天程式
程式功能:點對點的聊天,群聊(也就是
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...