毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于WCF的消息推送服务研究与实现(5)
(1) 使用异步方式进行服务器监听
通过异步方式进行服务器监听,无需阻塞,只要调用BeginAccept方法后,就可以继续执行后面的代码了。BeginAccept方法中,需要指定一个委托,当有连接请求到来时,由它来处理,代码如下:
serverSock = new Socket (AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);
serverSock.Bind (new IPEndPoint (IPAddress.Parse (_ip),_port));
serverSock.Listen(10);
serverSock.BeginAccept(new AsyncCallback(OnConnectRequest),serverSock);
异步的连接事件处理中,将为请求的连接建立一个新的连接:
private void OnConnectRequest(IAsyncResult ar){
Socket listener = (Socket)ar.AsyncState;
Socket link = listener.EndAccept(ar);//新的连接
……
(2) 异步的数据发送和接收
当建立连接后,需要为连接指定异步的接收方法和异步发送方法。由于发送过程往往是主动的,可以由用户控制,而接收过程则需要等待,所以异步接收更有实际意义。异步的接收方法是:
AsyncCallback recieveData = new AsyncCallback (OnRecievedData);
sock.BeginReceive (msgBuff, 0, msgBuff.Length, Socket-Flags.None, recieveData, sock);
而指定的异步接收委托方法是:
private void OnRecievedData(IAsyncResult ar){
Socket sock = (Socket)ar.AsyncState;
int nBytesRec = sock.EndReceive(ar);
string sRecieved = Encoding.ASCII.GetString(msgBuff, 0, nBytesRec);
对于发送,既可以用同步的发送方法Send,也可以用异步的方法BeginSend,其处理方法和接收相似。
(3) 连接过程
对客户端而言,可以用异步方法BeginConnect连接到服务器端。
_sock.BeginConnect(epServer, new AsyncCallback(OnConnect),_sock);
该方法设定的连接建立处理OnConnect中,可以从参数中获得建立的连接。
Socket sock = (Socket)ar.AsyncState;
sock.EndConnect(ar);
3. 基于WCF消息推送服务的设计
共5页:
上一页
1
2
3
4
5
下一页
上一篇:
C#的家庭理财系统软件设计+ER图
下一篇:
基于sharepoint软件的电站管理数据库建立
基于Apriori算法的电影推荐
PHP+IOS的会议管理系统的设计+ER图
数据挖掘在电子商务中的应用
数据挖掘的主题标绘数据获取技术与实现
基于PageRank算法的网络数据分析
基于神经网络的验证码识别算法
基于网络的通用试题库系...
国内外图像分割技术研究现状
中国学术生态细节考察《...
承德市事业单位档案管理...
志愿者活动的调查问卷表
C#学校科研管理系统的设计
神经外科重症监护病房患...
AT89C52单片机的超声波测距...
公寓空调设计任务书
10万元能开儿童乐园吗,我...
医院财务风险因素分析及管理措施【2367字】