服务端收到消息后丢给线程,在接收消息有延时

yann2 yann2 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

case bMainMessage::MSG_WHILE_REQ:
{
return subClientWhile(sClientObj->Socket, (tagWhileReq *)pvBuffer, dwLength);
}
case bMainMessage::MSG_USER_REG_REQ:
{
return subClientRegister(sClientObj->Socket, (bUserRegisertReq *)pvBuffer, dwLength);
}


接收到MSG_USER_REG_REQ消息以后,里面直接AfxBeginThread(ThreadAccountOpt, (LPVOID)pUserAccountOpt, 0, 0, NULL);丢给了ThreadAccountOpt线程去处理


而MSG_WHILE_REQ消息我模拟设定为客户端3秒发送1次,测试发现,在未接收到MSG_USER_REG_REQ时,每3秒都有数据正常,但是接收到MSG_USER_REG_REQ消息后,必须要等MSG_USER_REG_REQ消息里建立的线程ThreadAccountOpt结束以后 MSG_WHILE_REQ才能继续接收到消息(这里我直接打印日志看到的 所以不会有误)

线程不是非阻塞的么,建立完线程就返回了,怎么线程不结束就接收不到MSG_WHILE_REQ消息呢

注:线程里执行的是连接数据库操作。
...全文

相关推荐

wcf实现服务端主动向客户端推送消息

只为实现技术,没有任何多余代码,非常适合学习。 服务端点start启动后标题变为server opeded 客户端点connect连接服务端,连接后服务端文本框中显示hello,9527 服务端点say,客户端会显示收到的消息hello,9527

liaoyungchun

socket长连接多线程支持客户端服务端互发消息

socket长连接多线程支持客户端服务端互发消息 运行多个TUClient在控制台输入消息 消息格式如下:TA CM 114 :54089999000100000004|12|201002031029; 54089999000100000004代表客户端标识,每登录成功一个客户端将在内存中绑定一个客户标识与对应的socket输出流的映射,当服务端主动下行消息到客户端时,先找到要下行到客户端的socket输出流即可,运行http://127.0.0.1:8080/lx/index.jsp进行下行消息,修改index.jsp中的客户端标识即可下行到不同的客户端

longyangyangyang

Java聊天室—-多线程实现群聊、私聊、系统消息 (服务端完整代码奉上)

是不是试了很多次都没有达到自己想要的效果呢? 没关系,看到这你就已经有收获了 文章目录一、动图效果展示二、服务端代码(核心)三、bug吐槽四、分享交流 一、动图效果展示 二、服务端代码(核心) 光说不练歪把子 package socket_study03; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.conc

weixin_38670949

RabbitMQ延时消息实现方案

RabbitMQ延时消息实现方案,主要是用于java开发中企业实际应用,有流程图,详细配置

MC-闰土

实时接收发送消息(接收消息线程阻塞,发送消息线程唤醒)

实时接收发送消息(接收消息线程阻塞,发送消息线程唤醒),

huang714
评论 3
收藏 已收藏
分享
返回顶部
yann2
网络编程 18,356 成员 64,161 内容