用WINSOCK API实现同步阻塞方式的网络通讯

     在VB中进行网络通讯时,一般都爱使用Winsock控件,但此控件有两点缺点,一是需要一个窗口(当然也可以修改vbp文件,实现无窗口加载Winsock控件),二是通讯方式为异步非阻塞的,对于某些基于应答式的协议来说,比如HTTP、POP3、SMPT等,使用阻塞方式往往要方便得多,而且代码流程也清晰得多,增强了可读性,更不用说灵活性了(比如超时设置、缓冲区设置等)。虽然网络上有一些使用API编写的通讯类,但大类使用了WSAAsyncSelect方式,完全是Winsock的API版本,根本没啥意义,而且有的代码还不能很好地运行,为此,我使用API基于SELECT方式编写了一个同步阻塞方式的客户端通讯类,用来处理应答式网络协议,在实际工作中,取得了很好的效果,现将代码公布如下:

 

    另外,以后我还将贴出基于事件方式WSAEventSelect的客户端通讯代码,以及基于完成端口的服务器端VB多线程网络通讯代码,不过需要一段时间,因为这些日子有点忙,希望读者见谅。 

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