随笔分类 - Windows 网络编程
摘要:最近在一个项目中写一个网络客户端,当开一个进程时连不同的服务器是是正常的,开两个进程时,总有一个会频繁收到FD_CLOSE事件,造成频繁掉线的现象!经大半天的程序排查,发现是在网络初始化函数的版本的选择上的问题,最终换成2.2版完美解决.使用1.1版则产生会频繁收到FD_CLOSE事件.版本的选择还是要引起注意
阅读全文
摘要:Winodws Socket I/O模型的整理大致分以五种.其中Overlapped I/O模型是有两种实现方法.一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型/完成例程模型五:完成端口IOCP模型这几种模型在《WINDOWS网络编程技术》中第8章.都有介绍
阅读全文
摘要:1. WSAEWOULDBLOCK 错误说明在非锁定套接字上函数名说明WSAAccept, accept应用程序没有收到连接请求,再次调用,便可检查连接情况closesocket大多数情况下,这个错误意味着已随SO_LINGER选项一道调用了setsockopt,而且已设定了一个非零的超时值WSAConnect, connect应用程序已初始化,再次调用,便可检查是否完成WSARecv,recvWSARecvFrom, recvfrom没有收到数据,销后再次检查WSASend, sendWSASendTo, sendto外出数据无缓冲区可用,销后再试2. FD_WRITE 触发条件只有在三种条
阅读全文
摘要:应用程序调用WSAAsyncSelect()函数后,自动将套接字设置为非阻塞模式.套接字变成非阻塞模式,所以再调用阻塞函数时一般都是返回WSAEWOULDBLOCK。
阅读全文
摘要:一般来讲, 在服务器上,如果有足够的资源,Winsock server,理论上可以支持成千的并发连接。而现实是,我们没有足够的资源可供使用,分配。本文主要来讨论一下内存资源之于Winsock server开发的重要性。一)基本概念。-> Pages,Locked Pages. 在现代操作系统中,内存管理会把主存(RAM)分成Pages来管理。 Paging(或者swapping)指的是主存与外存之间以Page为单位进行数据的交换。Locked Pages指的是被锁定在主存中的内存页,以保证一些内核组件,driver可以访问到它们。windows一定会保证一定数量的可交换的内存空间,防止一
阅读全文
摘要:WindowsNT和Windows2000的套接字架构对于开发大响应规模的Winsock应用程序而言,对WindowsNT和Windows2000的套接字架构有基本的了解是很有帮助的。与其他操作系统不同的是,WinNT和Win2000的传输协议层并不直接给应用程序提供socket风格的接口,不接受应用程序的直接访问。而是实现了更多的通用API,称为传输驱动接口(Transport Driver Interface,TDI).这些API把WinNT的子系统从各种各样的网络编程接口中分离出来。然后,通过Winsock内核模式驱动提供了sockets方法(在AFD.SYS里实现)。这个驱动负责连接和
阅读全文

浙公网安备 33010602011771号