mfc下csocket程式設計詳解:
1. 常用的函式和注意事項(詳細的函式介面說明請檢視msdn):
csocket::create 初始化(一般寫伺服器程式都不要用為好,用下面的 csocket::socket 初始化)
csocket::socket初始化
csocket::setsockopt 設定socket選項
csocket::bind 繫結位址埠
csocket::connect 連線
csocket::listen 監聽
csocket::accept 接收外部連線的socket
csocket::send 傳送內容
csocket::receive 接收內容
csocket::close 關閉(不等於delete)
1) 在使用mfc編寫socket程式時,必須要包含都檔案。
2) afxsocketinit() 這個函式,在使用csocket前一定要先呼叫該函式,否則使用csocket會出錯;並且該函式還有乙個重要的使用方式,
就是在某個執行緒下使用 csocket 前一定要呼叫,就算主線程呼叫了該函式,在子執行緒下使用 csocket 也要先呼叫該函式,要不會出錯。
3) 還要注意的是, create 方法已經包含了 bind 方法,如果是以 create 方法初始化的前提下不能再呼叫 bind ,要不一定出錯。
2. 以下是使用例子**,通過例子來學習如何使用 csocket 進行程式設計, 並且附件上有完整的例子**。例子的可以在我的發布資源中找到:mfc下csocket程式設計例子 http://download.csdn.net/source/1383638
1) 伺服器端主要**:
2)客戶端**:
3) sdk 下的伺服器端**:
3. 總結
1) mfc進行程式設計的確比較簡單, 用的**比較少, 又容易管理。唯一不好的地方在於很多細節上的東西在資料上不容易查出來, 關聯性非常緊密, 象 afxsocketinit() 函式就是,函式的實現裡包含著很多不容易理解的類, 並且記錄了非常多的環境資訊, 比如建立的執行緒等等, 這樣在主線程呼叫後子執行緒沒有呼叫執行 csocket 的操作就會出錯。還有就是有些介面的設計非常離奇, 象 csocket::create 的介面就是, 實現上還執行了 csocket::bind , 非常不容易被發現。並且msdn上對 csocket::bind 的說明又明顯的提示需要顯示執行 csocket::bind 操作。
2) sdk 程式設計能理解函式的呼叫順序和**的結構就比較容易,省去了mfc下封裝了不知道什麼東西的部分,使得**的流程容易控制。但是從上面的例子來看非常明顯的並且不是那麼容易理解。不僅僅有很多奇怪的結構(微軟的命名一直如此, 無所云云), 並且函式相關太過於緊密, 初學者想一下子熟悉使用並不容易, 對開發者來說**管理起來非常麻煩。
**出處:http://blog.csdn.net/wandy_king/archive/2009/06/05/4244976.aspx
MFC下CSocket程式設計詳解
mfc下csocket程式設計詳解 1.常用的函式和注意事項 詳細的函式介面說明請檢視msdn csocket create 初始化 一般寫伺服器程式都不要用為好,用下面的 csocket socket 初始化 csocket socket初始化 csocket setsockopt 設定socke...
CSocket類網路程式設計 MFC
visual c 的mfc提供了csocket類用來實現網路通訊。下面介紹vc 在windows 95中實現socket的 csocket 類相關成員函式 這些成員函式實際上是從casyncsocket 類繼承來的 的使用。1 bool create uint nsocketport 0,int n...
C Socket程式設計
socket基本程式設計 服務端 using system.net using system.net.sockets using system.text using system.threading thread mythread socket socket 清理所有正在使用的資源。protecte...