菜单
  

    (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消息推送服务的设计
  1. 上一篇:C#的家庭理财系统软件设计+ER图
  2. 下一篇:基于sharepoint软件的电站管理数据库建立
  1. 基于MATLAB的图像增强算法设计

  2. jsp+sqlserver高校二手商品交...

  3. 基于Kinect的手势跟踪与识别算法设计

  4. JAVA基于安卓平台的医疗护工管理系统设计

  5. java+mysql设备监控记录的大...

  6. 基于核独立元分析的非线...

  7. 基于Hadoop的制造过程大数据存储平台构建

  8. 电站锅炉暖风器设计任务书

  9. 当代大学生慈善意识研究+文献综述

  10. 乳业同业并购式全产业链...

  11. 中考体育项目与体育教学合理结合的研究

  12. 河岸冲刷和泥沙淤积的监测国内外研究现状

  13. 杂拟谷盗体内共生菌沃尔...

  14. 大众媒体对公共政策制定的影响

  15. 酸性水汽提装置总汽提塔设计+CAD图纸

  16. 十二层带中心支撑钢结构...

  17. java+mysql车辆管理系统的设计+源代码

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回