DisconnectEx总返回WSAEINVAL是何原因?

VC/MFC > 网络编程 [问题点数:40分,结帖人r06041210]
本版专家分:20
结帖率 100%
本版专家分:20
在Windows上, 为什么不要将select函数作为定时器?---因为经常返回WSAEINVAL

我们知道, 在linux上, sleep函数的单位是s, 那怎么进行微妙级别的定时呢? 用select函数即可。 但是, 在Windows上, 强烈不建议将select函数用作定时器(该语句出自大名鼎鼎的Windows Socket这本书), 下面我们...

udp recvfrom返回-1 Invalid argument

如果sendto的数据大于MTU,则会在IP层分片发送,到达目标后由IP层重组,再从recvfrom一次性返回.如果使用IP层分片重组则存在乱序,丢包,重包的问题.调用一次sendto,只要数据长度小于MTU都会以一个独立的UDP包发送....

IOCP踩坑

IOCP函数 创建IOCP句柄和关联套接字到IOCP句柄,都是通过CreateIoCompletionPort 创建IOCP句柄 HANDLE iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); 关联套接字到IOCP句柄 ...

bind()函数

将一本地地址与一套接口捆绑。本函数适用于未连接的数据报或流类套接口,在connect()或listen()调用前使用。当用socket()创建套接口后,它便存在于一个名字空间(地址族)中,但并未赋名。bind()函数通过给一个未...

recv函数返回值说明

recv函数 int recv( SOCKET s, char FAR *buf, int len, int flags); ...不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符;...

调用setsockopt()函数时的WSAEINVAL错误

这个问题是在实现多播实验的时候出现的一个错误,找出错误原因的方法比较笨,之后如果看到有好的方法再做更新 检查错误代码如下: //加入多播组 ip_mreq mcast; mcast.imr_interface.S_un.S_addr=INADDR_ANY; ...

WSADuplicateSocket、WSASocket失败,错误码为WSAEINVAL(10022)

PS:最近又发现一种无法复用套接字的情况,修改一下。2011/10/11 16:24 ...一、失败的原因: 1、MS的解释  http://support.microsoft.com/kb/216603/en-us 2、目标进程和当前进程不在同一个se

Windows Socket 非阻塞模式开发

 非阻塞模式是指:套接字在执行操作时,调用的函数不管操作是否完成都会立即返回的工作模式。  非阻塞套接字在处理同时建立的多个连接等方面具有明显的优势。但是使用过程中有一定的难度。由于函数在操作没有完成...

socket非阻塞模式服务器设计与实现

阻塞和非阻塞的区别就是一个阻塞等待,一个直接返回,并返回一些有意义的错误代码。跳转到代码思路如下: 1.初始化套接字2.创建套接字3.设置socket为非阻塞模式int ioctlsocket( SOCKET s, //要设置的套接字 long...

IOCP扩展方法AcceptEx, DisconnectEx, GetAcceptExSockaddr用法示例

这篇文章记录了我刚接触IOCP模型时的理解,对于初学者,应该算不错的调试程序,仅有一个400多行代码的dpr文件,可以直接用WriteLn输出信息,前提是会用delphi建立Console Application,当然你也可以很容易的就改成了...

Windows下select模型

程序不得不处于等待状态,但是由于并不知道客户请求何时到来,因此函数在何时返回不得而知。  非阻塞模式套接字执行IO操作时,在任何时候函数都会立即返回。但程序员必须为此编写更多的代码。这增加了开发...

服务器编程心得(四)—— 如何将socket设置为非阻塞模式

1. windows平台上无论利用socket()函数还是WSASocket()函数创建的socket都是阻塞模式的: SOCKET WSAAPI socket( _In_ int af, _In_ int type, _In_ int protocol ); ...SOCKET WSASocket( ... _In_

Select模型与ioctlsocket的使用方法

Select模型与ioctlsocket的使用方法  2011-03-29 11:38:26| 分类:软件开发C++ | 标签:ioctlsocket socket 阻塞 select |字号大中小 订阅 ... ioctlsocket(socketc,FIONBIO, (u_long FAR*) &i

windiows 下 WSAEventSelect模型

WSAEventSelect模型是Windows socekts提供的另一个有用异步IO模型。该模型允许在一个或多个套接字上接收以事件为基础的网络事件通知。 通过调用WSAEventSelect函数,将一个事件与网络事件集合关联起来。...

windows 下 WSAAsyncSelect模型

WSAAsyncSelec是Winsock提供的一个适合于Windows编程使用的函数,它允许在一个套接口上当发生特定的网络事件时,给Windows网络应用程序(窗口或对话框)发送一个消息(事件通知)。  WSAAsyncSelect模型与select...

windows 下 Overlapped I/O

一.重叠模型的优点 1.可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统。 2.比起阻塞、select、WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能...

SOCKET与 线程 完成聊天室 非阻塞

我们拿最常用的send和recv两个函数来说吧,比如:你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈的输出缓冲区,它执行成功并不代表数据已经成功的发送出去了,如果TCP/...

ioctlsocket()函数和WSAAsyncSelect()函数的用法及区别

以下内容为程序代码: WSAAsyncSelect(sock, 0, 0, 0); 以下内容为程序代码: long lret; lret = 1L; ioctlsocket(sock, FIONBIO, (u_long FAR *) &lret); ...1.WSAAsyncSelect

SOCKET与 线程 完成聊天室 (客户端)

CSocket.h 文件 #ifndef __CSOCKET_H__ #define __CSOCKET_H__ #include #include "SocketEnum.h" #include using namespace std; class CSocket ... CSocket(SocketEnum::SocketType _socketType=S

Autojs 例子 源码 1600多个教程源码

autojs例子大全,一千六百多个脚本,简单的到复杂的例子,统统有,小白学完马上变大神,大神学了变超神。 脚本内容包含: 几十种类型的UI脚本,抖音、QQ、微信、陌陌、支付宝等自动化操作的脚本、还有部分协议列表,HTTP协议(POST、GET)上传下载,接码模块,百度文字识别api模块,文件操作模块:txt文本读一行删一行,等等其他例子

相关热词 c#分级显示数据 c# 不区分大小写替换 c#中调用就java c#正则表达式 验证小数 c# vscode 配置 c#三维数组能存多少数据 c# 新建excel c#多个文本框 c#怎么创建tcp通讯 c# mvc 电子病例