用户连接和断开的消息处理

TServerEventHandler类提供了用户连接和断开的时候,针对套接字的处理方式。

其中提供了两个函数

createContext 当一个新的用户连接的时候会被调用

deleteContext 当用户结束请求处理的时候会被调用

详细的流程可以查看TThreadPoolServer::Task,Task作为TThreadPoolServer的内部类,

在Task::run函数内部,当有连接进来的时候,会获取TServerEventHandler类的对象,判断是否

有实例化,对连接进行处理,详细的代码

boost::shared_ptr<TServerEventHandler> eventHandler =

server_.getEventHandler();

void* connectionContext = NULL;

if (eventHandler != NULL) {

connectionContext = eventHandler->createContext(input_, output_);

}

参考

http://blog.csdn.net/hbuxiaoshe/article/details/38942869

时间: 2024-09-29 00:48:08

用户连接和断开的消息处理的相关文章

ArcGIS Engine断开其他ArcSDE用户连接的解决方案

来自:http://blog.csdn.net/linghe301/article/details/38925481 最近有很多用户咨询在ArcGIS Engine中希望能够实现断开其他客户端连接ArcSDE的用户,其实个人认为ArcGIS Engine实现的是业务功能,断开其他客户端用户连接是一个管理型功能,这些操作不应该在一块,但是用户的需求可能就是有一定的合理性.特别是ArcGIS10.1也的确将ArcSDE管理的功能集成到ArcGIS for Desktop,说明这种功能实现可能是可行的

Exchange 2007升级Exchange 2013后Outlook一直处于不断地连接、断开状态

笔者周末两天为一个客户做了Exchange 2007到Exchange 2013的升级,在升级过程中可真是各种境遇啊,刚开始1台准备作为额外域控的IBM服务器宕机识别不到RAID卡,第二天安装好Exchange 2013准备移动邮箱时,Exchange 2013服务器又宕机识别不到RAID卡,此时对IBM服务器也是挺失望的,经过不断的振奋信息,膜拜,咨询IBM售后,最后把服务器固件升级后终于算是把基础环境搞好了.后续客户Exchange Server 2007 计算机名是使用的MAIL,而客户访

oracle 强行杀掉一个用户连接

查询要杀掉用户的sid和serial#这两个值: select  sid,serial# from v$session where username='用户名'; 杀掉用户连接 alter system kill session 'sid,serial#'; 操作完成.

tcp连接、断开过程

TIME_WAIT状态在等2MSL后closed,存在的原因:1.ack n+1可能丢失,FIN N超时重发,如果不存在time_wait状态,则C端下次收到会响应RST报文,S端收到则会解释为是错误.因而,要实现TCP全双工连接的正常终止,必须正确处理终止过程中四个分节任何一个分节的丢失情况,主动关闭连接的A端必须维持TIME_WAIT状态 . 2.允许老的重复分节在网络中消失(消失前不允许启动新的化身).比如在没消失前启动一个新连接,那么老连接的一些报文可能在新连接的时候到来,这个时候就会发

VMRC 控制台的连接已断开...正在尝试重新连接

vSphere Client连接到ESXi 5.0的主机,启动其中的虚拟机后,无法连接控制台,打开控制台之后,窗口上方提示一行"VMRC 控制台的连接已断开...正在尝试重新连接." 如上面所说执行下面的命令禁止掉Data Execution Prevention(DEP):bcdedit.exe /set nx AlwaysOff:但是这命令没法运行,只有着手DEP这个切入点了. DEP: DEP 的系统范围配置 系统的 DEP 配置由 Boot.ini 文件中的开关控制.如果以管理

Xshell使用root用户连接Ubuntu14.04时,提示SSH服务器拒绝了密码,请再试一次

今天,新安装的服务器Ubuntu14.04使用root用户连接时一直提示连接不上,使用其他普通用户则没有问题,后来了解到是ssh配置文件问题导致的. 修改: vim /etc/ssh/sshd_config 找到: # Authenticaton LoginGraceTime 120 PremitRootLogin without passwd StrictModes yes 修改为: # Authenticaton LoginGraceTime 120 PremitRootLogin yes

再淡spring jdbc 连接池断开重连设置

先看一段错误日志: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed. ### The error may exist in file ----] ### The error may involve ..... ### The error occ

远程桌面连接已断开 由于数据加密错误---和本地连接修复错误

远程桌面连接已断开 由于数据加密错误: 进入注册表编辑器窗口,展开"HKEY_LOCAL_MA CHINE\SYSTEM\CurrentCon trolSet\Services\TermService\ Parame ters",找到名为"Cer tificate"的子键,将它删除,重新启动XP系统或Windows 2000 Server服务器,系统就会重新生成"Certificate"子键,这样客户端就能正常连接到终端服务器了.这是因为Cert

VMware vSphere Client5.0与 Windows8不再有问题,解决VMware 5.0 客户端提示VMRC控制台的连接已断开

问题:VMware 5.0 客户端提示VMRC控制台的连接已断开...正在尝试重新连接,系统是win8的 网上解决办法: WIN8,在安装vmware vsphere client 5.0时出现兼容性问题无法安装.但可以用兼容模式安装. 用兼容模式安装后, 发现无法打开控制台Open Console. 一堆人的解法都告訴我說升級到 5.1 版本就可以了.但是大部分人的服务器上是有数据在跑的,不能轻易换. 后来在一个台湾人的博客上发现: vSphere 5.0 已經在去年 (  2012/12 )