iocp-C# IOCP模式下服务器主动发送消息

问题描述

C# IOCP模式下服务器主动发送消息

http://blog.csdn.net/zhujunxxxxx/article/details/43573879
服务器端代码是参考这篇帖子的。
我想要实现,按下按钮,然后往所有当前连接上的客户端发送数据。
但是从SocketAsyncEventArgsPool 对象池里pop一个SocketAsyncEventArgs e,然后发送数据。
发送函数里的Socket s = e.AcceptSocket会出现未实例化的错误。
发送函数如下
public void Send(SocketAsyncEventArgs e, byte[] data)
{
if (e.SocketError == SocketError.Success)
{
Socket s = e.AcceptSocket;
if (s.Connected)
{
Array.Copy(data, 0, e.Buffer, 0, data.Length);
if (!s.SendAsync(e))
{
ProcessSend(e);
}
else
{
CloseClientSocket(e);
}
}
}
}

这原因是什么你

解决方案

SocketAsyncEventArgs对象池并不会把连接上的客户端对象存起来。
需要在客户端第一次连接服务器时,将客户端的Socket对象存起来。
主动发送数据时在取来给SocketAsyncEventArgs

时间: 2024-10-31 00:10:09

iocp-C# IOCP模式下服务器主动发送消息的相关文章

微信开发模式下高级群发图文消息,内容解析为源码

问题描述 微信开发模式下高级群发图文消息时,手机看到的内容是源码,而不是解析成html,生成json用的方法是.NET自带的方法,有的说要把HTML标签转换,也转换了,一样不行,有没有碰到这样问题的同仁,应该是生成json的方式不对,但我们自己用的就很正常,微信就不行了,要怎么解决?下面是生成json的方法System.Web.Script.Serialization.JavaScriptSerializerjss=newSystem.Web.Script.Serialization.JavaS

阿里云金融云下FTP主动模式的讨论

阿里云的金融云集群,针对金融用户做了很多主动式的防御手段,其中包含主动禁止外网连接,安全组默认是黑名单的形式,必须要显式的放行对应的端口或IP才可以向外通信. 问题的起点 大多数FTP客户端默认使用被动模式来进行连接,在这个模式下,客户端会去连接服务器的某个大于1024的随机端口,但在金融云下使用就不太方便,如之前所述,金融云端口需要显式放开,但又不可能为了FTP将所有端口放开,所以就需要使用FTP的主动模式. FTP的主动模式工作流程 以下是使用lftp的一个典型的主动模式下的抓包与流程: 主

使用 GCDAsyncSocket 怎么接收服务器主动发过来的消息

问题描述 使用 GCDAsyncSocket 怎么接收服务器主动发过来的消息 小弟刚学GCDAsyncSocket,有些地方还不太明白,还请大神指教,谢谢! 就是在使用过程中,客户端发指令给服务器,服务器会返回指令,这个返回的指令客户端这边可以收到,也就是didReadData这个代理方法会运行. 但是如果客户端什么也不做,服务器主动发过来的指令,客户端就收不到了,didReadData这个方法也不会跑. 请问下,如果服务器主动发消息过来,哪个代理方法会跑,要怎么写? 解决方案 你客户端有没有主

Self Host模式下的ASP. NET Web API是如何进行请求的监听与处理的?

构成ASP.NET Web API核心框架的消息处理管道既不关心请求消息来源于何处,也不需要考虑响应消息归于何方.当我们采用Web Host模式将一个ASP.NET应用作为目标Web API的宿主时,实际上是由ASP.NET管道解决了这两个问题.具体来说,ASP.NET自身的URL路由系统借助于HttpControllerHandler这个自定义的HttpHandler实现了ASP.NET管道和ASP.NET Web API管道之间的"连通",但是在Self Host寄宿模式下,请求的

java-微信企业号开发,主动调用如何发送消息,最好有源码,谢谢!

问题描述 微信企业号开发,主动调用如何发送消息,最好有源码,谢谢! 请问应用主动调用如何发送消息,调研了很长时间,请各位大神指教 解决方案 自己已经解决,谢谢各位 解决方案二: 微信企业号开发:主动发送消息微信开发 获取Token.主动给企业成员发送消息微信企业号,发送消息---------------------- 解决方案三: 看下机器人回复的. 没明白你的主动发送消息是定时发送还是?

tomcat-web服务端主动向浏览器发送消息

问题描述 web服务端主动向浏览器发送消息 求大神!解答 web服务端使用技术(tomcat,spring,mybatis),,如何像浏览器主动发送消息? 解决方案 长连接,websocket都可以 长连接:http://segmentfault.com/q/1010000000138682 websocket:http://blog.csdn.net/jiangcs520/article/details/9749867 解决方案二: push基本都是websocket来实现.

java微信企业号开发之发送消息(文本、图片、语音)_java

上篇文章介绍了开启回调模式,开始回调模式后我们就要实现聊天功能了.平时使用微信聊天可以发送文本消息.语音.图片.视频等,这里只实现了其中的一些功能和大家分享.  一.与微信企业号建立连接1.企业应用调用企业号提供的接口,管理或查询企业号后台所管理的资源.或给成员发送消息等,以下称主动调用模式. 2.企业号把用户发送的消息或用户触发的事件推送给企业应用,由企业应用处理,以下称回调模式. 3.用户在微信中阅读企业应用下发的H5页面,该页面可以调用微信提供的原生接口,使用微信开放的终端能力,以下称JS

net-使用微信客服接口发送消息部分用户接收不到是什么原因

问题描述 使用微信客服接口发送消息部分用户接收不到是什么原因 使用微信客服接口发送消息部分用户接收不到是什么原因(在一定的时间段内出现部分用户接收不到信息,现象就是刚上线那会晚上转播还很多人都能收到,变成偶尔一两个人收不到,再变成大面积收不到,最后基本都收不到) 解决方案 微信服务号和订阅号发送客服信息,需要在你发送消息之前48小时内,客户发送了一个消息给公众号,可以是关注事件消息等.企业号好像没有限制,说是企业号发送消息没有限制. 解决方案二: 返回码是什么?自己对应微信开发者文档,找错误 解

delphi发送消息控制滚动条使用示例

本文为大家详细介绍下delphi实现发送消息控制滚动条,主要函数及用法如下,感兴趣的朋友可以参考下哈   1.Perform 函数 复制代码 代码如下: DBGrid1.Perform(WM_VSCROLL,SB_PAGEDOWN,0); //控制滚动条,向后翻页 DBGrid1.Perform(WM_VSCROLL,SB_PAGEUP,0); //控制滚动条,向前翻页 2.SendMessage 函数 复制代码 代码如下: SendMessage(DBGrid1.Handle,WM_VSCRO