資源簡介
本文介紹了在Windows 操作系統下基于TCP/IP 協議Socket 套接口的通信機制以及多線程編程知識與技巧,并給出多線程方式實現多用戶與服務端(C/S)并發通信模型的詳細算法,最后展現了用C++編寫的多用戶與服務器通信的應用實例并附有程序。
關鍵詞:Windows;套接字;多線程;并發服務器;
Socket 是建立在傳輸層協議(主要是TCP 和UDP)上的一種套接字規范,最初由美國加州Berkley 大學提出,為UNIX 系統開發的網絡通信接口,它定義了兩臺計算機之間通信的規范,socket 屏蔽了底層通信軟件和具體操作系統的差異,使得任何兩臺安裝了TCP 協議軟件和實現了Socket 規范的計算機之間的通信成為可能,Socket 接口是TCP/IP 網絡最為通用的應用接口,也是在Internet 上進行網絡程序應用開發最通用的API[1],本文介紹了Socket通信的基本機制以及采用多線程技術實現并發通信的基本原理,并給出實例。
代碼片段和文件信息
#include?“stdafx.h“
#include?“Socket.h“
#pragma?comment(lib“WS2_32.LIB“)
//********************************************************************************************************/
//**?函數名?**?SocketInit()
//**??輸入??**?無
//**??輸出??**?無
//**函數描述**?加載套接字
//********************************************************************************************************/
int?SocketInit()
{
WORD?wVersionRequested;
WSADATA?wsaData;
int?err;
wVersionRequested=MAKEWORD(22);
err?=?WSAStartup(wVersionRequested&wsaData);?//返回0,成功,否則就是錯誤碼
if?(err!=0)
{
printf(“WinSock?DLL版本不足要求n“);
return?0;
}
if?(LOBYTE(wsaData.wVersion)!=2||
HIBYTE(wsaData.wVersion)!=2)
{
WSACleanup();
return?0;
}
return?1;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????32256??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\Debug\SocketClient.exe
?????文件?????365276??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\Debug\SocketClient.ilk
?????文件?????568320??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\Debug\SocketClient.pdb
?????文件???????8616??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\BuildLog.htm
?????文件?????????65??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\mt.dep
?????文件??????25268??2015-04-06?16:21??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\Socket.obj
?????文件????????663??2015-04-06?16:21??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\SocketClient.exe.em
?????文件????????728??2015-04-06?16:21??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\SocketClient.exe.em
?????文件????????621??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\SocketClient.exe.intermediate.manifest
?????文件??????30491??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\SocketClient.obj
?????文件????3211264??2015-04-06?16:21??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\SocketClient.pch
?????文件??????12821??2015-04-06?16:21??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\stdafx.obj
?????文件?????486400??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\vc90.idb
?????文件?????176128??2015-04-07?14:47??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Debug\vc90.pdb
?????文件???????1213??2015-03-30?16:15??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\ReadMe.txt
?????文件????????786??2015-04-06?16:01??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Socket.cpp
?????文件????????988??2015-04-06?16:01??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\Socket.h
?????文件???????2979??2015-04-07?14:58??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\SocketClient.cpp
?????文件???????4635??2015-04-06?16:01??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\SocketClient.vcproj
?????文件???????1427??2015-04-07?14:58??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\SocketClient.vcproj.USER-20140331IT.Administrator.user
?????文件???????1427??2015-03-30?22:00??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\SocketClient.vcproj.USER-20141117OX.Administrator.user
?????文件???????2029??2015-04-06?15:56??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\SocketSever.cpp
?????文件????????217??2015-03-30?16:15??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\stdafx.cpp
?????文件????????233??2015-03-30?16:15??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\stdafx.h
?????文件????????498??2015-03-30?16:15??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient\targetver.h
?????文件???11324416??2015-03-30?22:12??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient.ncb
????..A..H.?????10752??2015-03-30?22:12??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClient.suo
?????文件???11348992??2015-04-07?14:58??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClientThread.ncb
?????文件????????902??2015-03-30?16:15??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClientThread.sln
????..A..H.?????10240??2015-04-07?14:58??Socket(TCP)\SocketClientThread\SocketClientThread\SocketClientThread.suo
............此處省略43個文件信息
評論
共有 條評論