用WINSOCK API實現同步阻塞方式的網絡通訊

     在VB中進行網絡通訊時,一般都愛使用Winsock控件,但此控件有兩點缺點,一是需要一個窗口(當然也可以修改vbp文件,實現無窗口加載Winsock控件),二是通訊方式爲異步非阻塞的,對於某些基於應答式的協議來說,比如HTTP、POP3、SMPT等,使用阻塞方式往往要方便得多,而且代碼流程也清晰得多,增強了可讀性,更不用說靈活性了(比如超時設置、緩衝區設置等)。雖然網絡上有一些使用API編寫的通訊類,但大類使用了WSAAsyncSelect方式,完全是Winsock的API版本,根本沒啥意義,而且有的代碼還不能很好地運行,爲此,我使用API基於SELECT方式編寫了一個同步阻塞方式的客戶端通訊類,用來處理應答式網絡協議,在實際工作中,取得了很好的效果,現將代碼公佈如下:

 

    另外,以後我還將貼出基於事件方式WSAEventSelect的客戶端通訊代碼,以及基於完成端口的服務器端VB多線程網絡通訊代碼,不過需要一段時間,因爲這些日子有點忙,希望讀者見諒。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章