`
zha_zi
  • 浏览: 586282 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

VC++网络编程 WINSOCK I/O模型

 
阅读更多

         window 下的套接字以来两种方式执行I/O操作,阻塞IO 非阻塞IO,一般默认使用的是阻塞IO 即线程会等待不会把控制权利立刻返回给程序,这就意为一个线程在某一个时候只能够去执行一个IO操作。如果服务端想和多个客户端同时进行通信的话就要使用多线程编程,但是会增加开销,如果采用非阻塞IO程序不会等待,会立刻返回结果但是在大部分情况下返回的结果是错误的,并返回一个WSAEWOULDBLOCK的错误,所以程序员要不断的检测函数返回的代码以判断一个套接字何时可供读写,为了避免麻烦

         winsock 提供了不同的套接字模型对IO进行管理 select (),WSAAsyncSelect(),WSAEventSelect(),Overlapped(),

select() 模型是winsock 中最常见的IO模型,通过调用select函数可以确定一个或者多个套接字的状态,判断套接字上是否存在数据,或者能否向一个套接字写入数据,它技能防止应用程序在套接字处于阻塞模式时候在一次IO操作被阻塞,同时也防止套接字处于非锁定模式中产生WSAEWOULDBLOCK错误select函数原型、

int select(int nfds,fd_set* readfds,fd_set*writefds,fd_set* exceptfds,const struct timeeval*timeout)

         nfds 是伯克利套接的兼容,基本没有作用,readfds writefds exceptfds 分别是可以读的可以写入的,发生异常的一组集合fd_set,在fd_set中会存在有一定数量的满足条件的集合

分享到:
评论

相关推荐

    VC++网络编程--局域网下载系统的实现

    Winsock分别提供了“套接字模式”和“套接字I/O模型”,可对一个套接字上的I/O行为加以控制。注意:“套接字模式”和“套接字I/O模型”是无关的,套接字模型的出现是为了解决套接字模式存在的某些限制。 Winsock...

    网络编程实用教程(第三版).zip

    第8章 WinSock的I/O模型 209 8.1 select模型 210 8.2 WSAAsyncSelect异步I/O模型 212 8.3 WSAEventSelect事件选择模型 216 8.4 重叠I/O模型 221 8.4.1 重叠I/O模型的优点 221 8.4.2 重叠I/O模型的基本...

    《Windows网络编程技术》高清PDF版+随书源码

    基于WinSock的网络编程4.1 基于WinSock网络编程的基础4.1.1 网络应用实例与来源4.1.2 Winsock提供的接口与服务4.1.3 WinSock提供的函数调用4.2 WinSock网络应用实例算法与实现4.2.1获取主机网络信息4.2.2 WinSock单...

    WINDOWS网络编程技术.pdf

    基于WinSock的网络编程4.1 基于WinSock网络编程的基础4.1.1 网络应用实例与来源4.1.2 Winsock提供的接口与服务4.1.3 WinSock提供的函数调用4.2 WinSock网络应用实例算法与实现4.2.1获取主机网络信息4.2.2 WinSock单...

    用WINSOCK实现聊天室的VC++程序设计

    WINSOCK 是在Windows进行网络通信编程的API接口,也是Windws网络编程的事实标准。在网络编程中最常用的方案便是客户机/服务器模型。本文提出了在客户机/服务器模型下用WINSOCK实现Internet中常见的聊天室软件的方案...

    基于TCP_IP协议的WinSock网络编程及应用

    本文介绍了以TCP/IP为基础、基于客户机/服务器( C/S)模型,在Win2000平台、VC++6.0环境下利用Windows套接字Sockets进行网络编程的相关技术,并应用于车间自动化生产,实现了上、下位计算机之间有效的数据传输。

    vc++ 应用源码包_3

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    VC++开发手机软件(PDF+源码).

    11.1.11 Select I/O模型 11.2 PING编程 11.2.1 PING编程概述 11.2.2 PING编程示例 11.3 RAS拨号编程 11.3.1 建立拨号连接 11.3.2 关闭拨号连接 11.3.3 列举已建立的活动连接 11.3.4 列举电话簿条目 第12...

    vc++ 应用源码包_1

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    Visual C++网络通信编程实用案例精选_9(全)

    本书是一本介绍利用Visual C++进行网络通信程序开发的书籍,书中精选了大量网络实例,涵盖了本地计算机网络编程,局域网网络通信编程,IE编程,网络通信协议编程,串口通信编程,代理服务器编程和高级网络通信编程。...

    vc++ 应用源码包_5

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    vc++ 应用源码包_6

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    vc++ 应用源码包_2

    vc++动态链接库编程之DLL典型实例源代码下载 VC++仿Dreamweaver取色器源代码 VC++挂机锁屏系统源程序 VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本...

    Visual C++网络通信编程实用案例精选_7

    本书是一本介绍利用Visual C++进行网络通信程序开发的书籍,书中精选了大量网络实例,涵盖了本地计算机网络编程,局域网网络通信编程,IE编程,网络通信协议编程,串口通信编程,代理服务器编程和高级网络通信编程。...

    Visual C++网络通信编程实用案例精选_3

    本书是一本介绍利用Visual C++进行网络通信程序开发的书籍,书中精选了大量网络实例,涵盖了本地计算机网络编程,局域网网络通信编程,IE编程,网络通信协议编程,串口通信编程,代理服务器编程和高级网络通信编程。...

    vc++ 开发实例源码包

    [4]---重叠I [5]---完成端口 IP所在地查询器 如题。 jpeglib_demo 处理Jpeg图片。 KeyHook 键盘钩子,截获键盘信息。 Kugou7+UI 界面设计。学习界面的好实例,强烈推荐。 自绘button 如题。 自绘MENU 如题。 ...

    Visual C++网络通信编程实用案例精选_6

    本书是一本介绍利用Visual C++进行网络通信程序开发的书籍,书中精选了大量网络实例,涵盖了本地计算机网络编程,局域网网络通信编程,IE编程,网络通信协议编程,串口通信编程,代理服务器编程和高级网络通信编程。...

    Windows应用程序捆绑核心编程光盘代码

    4.4.2 流式套接字编程流程 91 4.4.3 套接字调用基本函数 92 4.4.4 Winsock程序设计 95 4.4.5 一个通用套接字类 96 4.4.6 套接字服务器端与客户端间通信的实例 101 4.5 本章小结 106 参考文献 106 第5章 使用...

Global site tag (gtag.js) - Google Analytics