Bruce Liang
Bruce Liang
这种情况通常发送在销毁组件时,你检查一下是不是提前销毁了组件。
@int2e 最好进群详细说明情况。
> Try using the curl command to access the returned data content and Is there an error log or more information provided ? Same application and same configuration, only upgrade...
试试新版本:v5.9.6 或 v6.0.4
检查一下,是否在收到OnHandshake事件前就调用Send()发数据。
6.0.5 去掉了这个断言,直接让Send()方法返回失败。你最好检查一下代码。
你是Windows系统吗?Linux系统默认就支持双栈的。 后续版本可能会加入一个设置属性。 临时方案: 1. 方案一:改变一下以下2段代码的顺序: ``` if(IS_HAS_ERROR(::bind(soListen, addr.Addr(), addr.AddrSize()))) { SetLastError(SE_SOCKET_BIND, __FUNCTION__, ::WSAGetLastError()); return FALSE; } if(TRIGGER(FirePrepareListen(soListen)) == HR_ERROR) { SetLastError(SE_SOCKET_PREPARE, __FUNCTION__, ENSURE_ERROR_CANCELLED); return FALSE; } ``` 2. 方案二:修改源码,bind之前加一段代码。
6.0.7 加入方法 `SetDualStack()`
直接用 SSLPackServer
1、通常是解析完HTTP请求头,接收完Body内容,在OnMessageComplete事件用工作线程处理后续业务逻辑。但理论上只要连接没关闭,IsKeepAlive() 值是不会变的。 2、旧版本HP采用被动释放内存方式,等请求量降低后会逐渐释放内存,如果请求突然停止了,就不会释放内存。最新版本会主动定时释放内存, 即使请求突然停止,内存也会慢慢释放。