確保接收的資料的完整性;
伺服器端程式採用多執行緒實現多客戶端併發;
使用crc或者sha進行檔案完整性校驗;
響應遠端客戶端的查詢資料庫的請求貌似要求自己定義一種通訊格式:命令模式,資料傳輸模式(檔名,資料,校驗值);
20160728: 多客戶端檔案傳輸;
1 伺服器端設計結構設計
客戶端表示:
// 客戶端表示
typedef struct lm_client; // 字首lm_是為了防止命名
定義乙個tcpserver
類來實現伺服器端程式的功能。
型別變數名
含義備註
intm_server_socket
server socket號
std::set
m_clients
遠端客戶端
pthread_t
m_pidaccept
客戶端連線請求處理執行緒號
pthread_t
m_pidmanage
管理執行緒號
用於建立和登出資料處理執行緒
型別函式原型
輸入引數
輸出引數
備註public
bool initialize(unsigned int nport)
nport: 埠號
true:初始化成功;false:初始化失敗
伺服器初始化函式
private
void uninitialize(void)
伺服器反初始化函式
private
static void* acceptthread(void);
連線請求處理執行緒
private
static void* managethread(void);
連線管理執行緒
private
static bool filereceive(char* filepath);
filepath:檔案路徑
檔案傳輸是否成功
檔案接收函式
private
static bool cmdreceive(char* message);
message:接收到的訊息
是否處理成功
命令接收函式
private
static void cmdhandler(int cmdcode);
cmdcode:命令的編碼
命令解碼函式以及處理
查詢教師賬號資訊——用於登入;
查詢教師對應的課程資訊——用於客戶端介面顯示;
檔名檔案說明
tcpserver.cpp
伺服器類tcpserver的定義
tcpserver.h
伺服器類tcpserver的宣告
headers.h
標頭檔案包含以及部分輔助函式宣告
headers.cpp
輔助函式定義
tcpdefines.h
tcp傳輸相關常量、資料結構和**函式的宣告和定義
databasefunc.h
資料庫操作相關函式的宣告
databasefunc.cpp
資料庫操作相關函式的定義
communication.h
通訊格式編譯碼函式的宣告
communication.cpp
通訊格式編譯碼函式的定義
來自為知筆記(wiz)
Linux網路程式設計 伺服器端基本框架
伺服器 話機 socket 繫結 bind 多路 listen 等待 accept 接通 新socket 總機等別的 分機跟客戶通訊 通訊 write read 結束通話分機 close include include include include include include include ...
PHPdatatable伺服器端處理 1
傳送引數 sent parameters 當使用伺服器處理時,datatables會傳送如下資料給伺服器 名稱 型別 描述 draw integerjs 請求次數計數器,每次傳送給伺服器後又原封返回,因為請求是非同步的為了確保每次請求能對應到伺服器返回的資料,假設你請求的是第一頁的資料收到的卻是第二...
socket伺服器端
伺服器 include winsock2.h include string.h include stdio.h include time.h include stdarg.h include stdlib.h pragma comment lib,ws2 32 void errexit const ...