Linux伺服器端程式設計V1

2022-05-16 23:39:14 字數 1737 閱讀 5535

確保接收的資料的完整性;

伺服器端程式採用多執行緒實現多客戶端併發;

使用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 ...