為了更了解網路開發的流程,可以先通過掌握winsock再去掌握別的網路開發庫,掌握傳統的winsock可以對網路開發的架構有乙個清晰框架,初學者可以先從乙個入門的winsock程式開始:
【服務端**】
wsadata data;
word versions = makeword(2,0);
int iresult = wsastartup(versions,&data);//載入套接字動態鏈結庫版本
if (iresult != no_error)
//詳情看msdn
socket mainsock,transfersock;//定義兩個套接字,乙個繫結監聽,乙個收發資料
mainsock = socket(af_inet,sock_stream,0)//建立tcp套接字
if (m_socket == invalid_socket)//invalid_socket是建立套接字失敗時的返回值
//詳情可檢視sockaddr_in在msdn中的介紹//
sockaddr_in mainaddr,transferaddr;//定義兩個sockaddr_in結構變數
int n=sizeof(transferaddr);//獲取結構大小
mainaddr.sin_family= af_inet;//設定位址族
mainaddr.sin_port = htons(800);//設定埠號
mainaddr.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");
//設定ip位址 inet_addr將字元轉換為二進位制ip
int binerror = bind(mainsock,(sockaddr*)&mainaddr,sizeof(mainaddr));//繫結
if (binerror == socket_error)
listen(mainsock,10);//開始監聽
char str = "你好";//定義要傳送的字元
while (true)
}::closesocket(mainsock);//關閉套接字
::closesocket(transfersock);//關閉套接字
::wsacleanup();//釋放套接字型檔
【客戶端**】
wsadata data;
word dversions = makeword(2,0);
::wsastartup(dversions,&data);//定義套接字版本,初始化套接字
socket mainsock;//定義收發資料套接字
mainsock = ::socket(af_inet,sock_stream,0);//建立tcp套接字
sockaddr_in mainaddr;//定義收傳送資料位址
mainaddr.sin_family= af_inet;//設定位址族
mainaddr.sin_port = htons(800);//設定埠號
mainaddr.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");//設定ip位址
char str = "你好伺服器";
::connect(mainsock,(sockaddr*)&mainaddr,sizeof(mainaddr));//連線伺服器
::recv(mainsock,str,sizeof(str),0);//向伺服器傳送訊息
//::closesocket(mainsock);//關閉套接字
//::wsacleanup();//釋放套接字型檔
MFC socket網路程式設計示例
mfc socket網路程式設計 流程示例 伺服器端程式 1 載入套接字型檔 2 建立套接字 socket 3 將套接字繫結到乙個本地位址和埠上 bind 4 將套接字設為監聽模式,準備接收客戶請求 listen 5 等待客戶請求到來 當請求到來後,接受連線請求,返回乙個新的對應於此次連線的套接字 ...
MFC Socket程式設計
再此之際,記錄一下自己編寫socket的過程,實現wifi通訊。應用場景 外設系統作為ap模式下的伺服器。電腦端pc軟體作為ap模式下的客戶端。第一步 初始化socket bool csocketport initialize if lobyte wsadata.wversion 1 hibyte ...
MFC Socket網路程式設計之TCP伺服器端
tcp ip與osi7層參考模型的對應關係 osi的第12層也就是物理層 和資料鏈路層 對應於tcp ip的網路介面 osi的第3層網路層對應tcp ip的網路層 osi的傳輸層對應tcp ip的傳輸層 osi的567層也就是會話層,表示層,應用層 對應tcp ip的應用層 osi參考模型並不是真正...