WSARecv()】的更多相关文章

简述:从一个套接口接收数据. #include <winsock2.h> int WSAAPI WSARecv ( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesRecvd, LPINT lpFlags, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine ); s:一个标识已…
Buffer Type Buffer I/O 针对Buffer I/O的请求,系统会为其分配一个非换页内存作为缓存区,其大小等同于I/O请求的缓存区大小.对于写操作,I/O管理器在创建IRP时,将请求者的缓存区数据拷贝到申请得到的非换页缓存区中.对于读操作,I/O管理器将会在I/O完成时,将数据从非换页内存缓存区中拷贝到请求者的缓存区中.在I/O完成后,会释放掉该次申请到的非换页缓存区. Direct I/O I/O管理器在处理Direct I/O类型的请求时,会将请求者的缓存区锁定在内存中,使…
协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕. 所以子程序调用是通过栈实现的,一个线程就是执行一个子程序. 子程序调用总是一个入口,一次返回,调用顺序是明确的.而协程的调用和子程序不同. 协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,…
很明显,以下的文字来自微软MSDN 链接http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx MSDN上分成了几个部分,查起来费事,统一放在这里了. 用kernel32.dll里的FormatMessage可以得到支持多语言的返回消息 有人把这些错误代码整理成了类,供参考 http://www.cnblogs.com/Sabre/p/3929264.html Note The informat…
10061-WSAECONNREFUSED 是指没有启动服务器或者说服务器没有处于监听状态.通常导致client在connect时候返回这个错误码的原因在于服务端与客户端设置的端口号没有同步转换导致(如果确认是保证端口一致的话),scaddr.sin_port = htons(port);这一步中的htons操作有一边没有做. 10049-WSAEADDRNOTAVAIL 在bind时候发现该错误是由于inet_addr接口使用INADDR_ANY作为入参时,地址家族结构中的sockAddr.s…
GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置.函数并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值,也不能担保函数已成功执行.只有在函数调用返回一个错误结果时,这个函数指出的错误结果才是有效的.通常,只有在函数返回一个错误结果,而且已知函数会设置GetLastError变量的前提下,才应访问GetLastError:这时能保证获得有效的结果.(来源:百度百科) 在进行windows网络编程时,可以…
2016-08-3116:44:09 server 端 /******************************************************************* author:xuqing date:2016-5-20 about the io thread the init part must be less than 1000,just the real_part_count THREAD_DEAL_COUNT is the count one thread…
一. 重叠I/O的概念当调用ReadFile和WriteFile时,如果最后一个参数lpOverlapped设置为NULL,那么线程就阻塞在这里,直到读写完指定的数据后,它们才返回.这样在读写大文件的时候,很多时间都浪费在等待ReadFile和WriteFile的返回上面.如果ReadFile和WriteFile是往管道里读写数据,那么有可能阻塞得更久,导致程序性能下降.为了解决这个问题,windows引进了重叠I/O的概念,它能够同时以多个线程处理多个I/O.其实你自己开多个线程也可以处理多个…
select函数决定一个或者多个套接字(socket)的状态,如果需要的话,等待执行异步I/O. int select( __in        int    nfds, __inout    fd_set *readfds, __inout  fd_set *writefds, __inout  fd_set *exceptfds, __int       const struct timeval *timeout ); 参数: nfds:忽略. readnfds: 指向检查可读性的套接字集合…
[0]-操作成功完成. [1]-功能错误. [2]-系统找不到指定的文件. [3]-系统找不到指定的路径. [4]-系统无法打开文件. [5]-拒绝访问. [6]-句柄无效. [7]-存储控制块被损坏. [8]-存储空间不足,无法处理此命令. [9]-存储控制块地址无效. [10]-环境错误. [11]-试图加载格式错误的程序. [12]-访问码无效. [13]-数据无效. [14]-存储器不足,无法完成此操作. [15]-系统找不到指定的驱动器. [16]-无法删除目录. [17]-系统无法将…