IOCP服务器 监听接收连接部分?解决办法
IOCP服务器 监听接收连接部分?
我的接受连接函数是用的:WSAAccept
我在对我服务器进行压力测试的时候,发现:程序中断在比较底层的代码。
发现%30是从WSAAccept函数这儿发生的。
我就搞不明白了,怎么会出现这个怪异的问题。
我测试的方式是:连接上发送一个命令,等待命令返回,断开连接。
客户端之间的连接请求是有时间间隔的,在这儿我是5毫秒发送一个,即测试软件一秒发送200个连接以及命令。
------解决方案--------------------
------解决方案--------------------
#ifdef _M_IX86//这一行也有问题吧
PFLS_GETVALUE_FUNCTION flsGetValue = FLS_GETVALUE;//这里过不去(%100)
赋值有问题吧
------解决方案--------------------
反正是有一点需要注意:投递请求的时候,OVERLAPPED结构体需有效
------解决方案--------------------
表面上看是RTL失败,但实际上是程序BUG,你应该看看 CALLSTACK!
我的接受连接函数是用的:WSAAccept
我在对我服务器进行压力测试的时候,发现:程序中断在比较底层的代码。
- C/C++ code
_CRTIMP PFLS_GETVALUE_FUNCTION __cdecl __set_flsgetvalue() { #ifdef _M_IX86 PFLS_GETVALUE_FUNCTION flsGetValue = FLS_GETVALUE;//这里过不去(%100) if (!flsGetValue) { flsGetValue = _decode_pointer(gpFlsGetValue); TlsSetValue(__getvalueindex, flsGetValue); } return flsGetValue; #else /* _M_IX86 */ return NULL; #endif /* _M_IX86 */ }
发现%30是从WSAAccept函数这儿发生的。
我就搞不明白了,怎么会出现这个怪异的问题。
我测试的方式是:连接上发送一个命令,等待命令返回,断开连接。
客户端之间的连接请求是有时间间隔的,在这儿我是5毫秒发送一个,即测试软件一秒发送200个连接以及命令。
------解决方案--------------------
------解决方案--------------------
#ifdef _M_IX86//这一行也有问题吧
PFLS_GETVALUE_FUNCTION flsGetValue = FLS_GETVALUE;//这里过不去(%100)
赋值有问题吧
------解决方案--------------------
反正是有一点需要注意:投递请求的时候,OVERLAPPED结构体需有效
------解决方案--------------------
表面上看是RTL失败,但实际上是程序BUG,你应该看看 CALLSTACK!