MFC Socket網路程式設計之TCP伺服器端

2021-08-04 04:51:17 字數 1816 閱讀 5206

tcp/ip與osi7層參考模型的對應關係

osi的第12層也就是物理層

和資料鏈路層

對應於tcp/ip的網路介面;

osi的第3層網路層對應tcp/ip的網路層

;osi的傳輸層對應tcp/ip的傳輸層

;osi的567層也就是會話層,表示層, 應用層

對應tcp/ip的應用層

;osi參考模型並不是真正存在的7層;

osi各層所使用的協議:

應用層:遠端登入協議telnet, 檔案傳輸協議ftp, 超文字傳輸協議http, 網域名稱服務dns, 簡單右鍵傳輸協議smtp, 郵局協議pop3等;

傳輸層:傳輸控制協議tcp, 使用者資料報協議udp;

tcp:面向連線的可靠傳輸協議;

udp:無連線的不可靠的傳輸協議;(傳送不管對方是否收到)

網路層:網路協議ip, internet網際網路控制報文協議icmp, internet組管理協議igmp;

在mfc裡面編寫乙個基於tcp的網路聊天程式步驟如下:

伺服器端:

1,建立乙個基本對話方塊;

2,向對話方塊中新增2個編輯框,和1個用來傳送資料的按鈕,乙個傳送編輯框, 乙個接收訊息編輯框, 其中接收訊息的編輯框設定如下;

phost = gethostbyname(name);//獲得主機結構

ip = inet_ntoa(*(in_addr *)phost->h_addr);

afxbeginthread(&server_thd, 0);//伺服器執行緒開始;

return true;

4.全域性執行緒函式定義

uint server_thd(lpvoid p)

if (bind(listen_sock, (struct sockaddr*) &local_addr, sizeof(sockaddr_in)))

listen(listen_sock, 5);//最大使用者數

if ((sock = accept(listen_sock, (struct sockaddr *)&client_addr, &iaddrsize)) == invalid_socket)

else

接收資料

while (1)

else

}return 0;

4,資料重新整理函式update()

void csfiledlg::update(cstring s)

5,傳送資料

void csfiledlg::onbnclickedbtnsend()

else if (s == "")

else

}

MFC Socket網路程式設計 TCP IP

為了更了解網路開發的流程,可以先通過掌握winsock再去掌握別的網路開發庫,掌握傳統的winsock可以對網路開發的架構有乙個清晰框架,初學者可以先從乙個入門的winsock程式開始 服務端 wsadata data word versions makeword 2,0 int iresult w...

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