資源簡介
描述:
1 采用C++語言
2 編譯環(huán)境是code::blocks
3 使用的是非阻塞套接字
功能描述:
1 一個服務器對多個客戶端之間進行通信
2 實現(xiàn)多線程開發(fā),共包括接收數(shù)據(jù)線程、發(fā)送數(shù)據(jù)線程、主線程、接收客戶端連接線程、清理資源線程。
其中主線程負責數(shù)據(jù)的輸入,清理資源線程主要負責清理不需要的內(nèi)存空間。
3 可以定向的向某個連接的客戶端進行通信、同時也可以使用廣播的方式向單個客戶端發(fā)送數(shù)據(jù)
代碼片段和文件信息
#include?“client.h“
//變量
SOCKET sClient; //套接字
HANDLE hThreadSend; //發(fā)送數(shù)據(jù)線程
HANDLE hThreadRecv; //接收數(shù)據(jù)線程
char????bufSend[MAX_NUM_BUF]; //發(fā)送數(shù)據(jù)緩沖區(qū)
BOOL????bSend?=?FALSE;??????????????????????//發(fā)送標記位
BOOL bConnecting; //與服務器的連接狀態(tài)
HANDLE arrThread[2]; //子線程數(shù)組
CRITICAL_SECTION?cs; //臨界區(qū)對象,鎖定bufSend
/**
?* 初始化
?*/
BOOL?InitClient(void)
{
//初始化全局變量
InitMember();
//創(chuàng)建SOCKET
if?(!InitSockt())
{
return?FALSE;
}
return?TRUE;
}
/**
?*?初始化全局變量
?*/
void?InitMember(void)
{
InitializeCriticalSection(&cs);
sClient?=?INVALID_SOCKET; //套接字
????hThreadRecv?=?NULL; //接收數(shù)據(jù)線程句柄
hThreadSend?=?NULL; //發(fā)送數(shù)據(jù)線程句柄
bConnecting?=?FALSE; //為連接狀態(tài)
????//初始化數(shù)據(jù)緩沖區(qū)
memset(bufSend?0?MAX_NUM_BUF);
memset(arrThread?0?2);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-04-24?17:09??project\
?????目錄???????????0??2017-04-24?17:09??project\Client\
?????目錄???????????0??2017-04-24?17:09??project\Client\bin\
?????目錄???????????0??2017-04-24?17:09??project\Client\bin\Debug\
?????文件?????1029701??2017-04-20?21:31??project\Client\bin\Debug\client.exe
?????文件????????1132??2017-03-29?23:37??project\Client\client.cbp
?????文件????????5754??2017-04-20?21:31??project\Client\client.cpp
?????文件????????2698??2017-04-20?21:32??project\Client\client.depend
?????文件????????1011??2017-04-19?10:55??project\Client\client.h
?????文件?????????690??2017-04-21?14:26??project\Client\client.layout
?????文件?????????468??2017-04-20?00:06??project\Client\main.cpp
?????目錄???????????0??2017-04-24?17:09??project\Client\obj\
?????目錄???????????0??2017-04-24?17:09??project\Client\obj\Debug\
?????文件???????20572??2017-04-20?21:31??project\Client\obj\Debug\client.o
?????文件???????10402??2017-04-20?00:09??project\Client\obj\Debug\main.o
?????文件?????????379??2017-04-24?17:09??project\readme.txt
?????目錄???????????0??2017-04-24?17:09??project\Server\
?????目錄???????????0??2017-04-24?17:09??project\Server\server\
?????目錄???????????0??2017-04-24?17:09??project\Server\server\bin\
?????目錄???????????0??2017-04-24?17:09??project\Server\server\bin\Debug\
?????文件?????1138142??2017-04-24?16:16??project\Server\server\bin\Debug\server.exe
?????文件?????????384??2017-04-24?10:27??project\Server\server\main.cpp
?????目錄???????????0??2017-04-24?17:09??project\Server\server\obj\
?????目錄???????????0??2017-04-24?17:09??project\Server\server\obj\Debug\
?????文件???????10399??2017-04-24?16:16??project\Server\server\obj\Debug\main.o
?????文件???????20023??2017-04-24?16:16??project\Server\server\obj\Debug\sclient.o
?????文件??????150744??2017-04-24?16:16??project\Server\server\obj\Debug\server.o
?????文件????????4057??2017-04-24?15:32??project\Server\server\sclient.cpp
?????文件????????1796??2017-04-20?20:20??project\Server\server\sclient.h
?????文件????????1198??2017-04-16?09:55??project\Server\server\server.cbp
?????文件????????9527??2017-04-24?16:16??project\Server\server\server.cpp
............此處省略3個文件信息
評論
共有 條評論