菜单
  

    SOAP消息可以和各种网络传输协议绑定,例如SOAP1.0规范最初规定的HTTP协议,以及新SOAP规范和主流SOAP供应商推出的SMTP、FTP、POP3、BEEP、JMS、MSMQ等协议。
    2.2     Socket
    Socket也被称为套接字,用于描述IP地址和端口,作为网络通信连接的句柄。在基于TCP/IP的网络应用开发中,Socket通信方式是一种常用的机制。由于TCP/IP协议的广泛应用,使得Socket通信方式具有非常强的适用性,除了用于网络通信之外,还可以应用于跨平台通信、硬件控制、进程间通信等多种场合。Socket通信应用程序通常运行时间长、对环境变化敏感、并发控制复杂。因此,如何保证Socket通信稳定、高效,可靠,是一个非常重要的问题。
    2.2.1     NET下的多线程Socket通信方式
    在.NET中,对Winsock32API中的套接字服务进行了封装,在System.Net.Sockets命名空间里包含了Windows套接字接口,使得开发Socket通信程序的难度大大降低。Socket通信有两种类型,面向连接的TCP方式和UDP报文方式,当前的应用以TCP方式居多,本文主要讨论TCP方式的应用。一般的Socket网络通信应用,存在着很多的并发的接收和发送动作,为了提高效率,往往通过多线程的方式来进行通信。
    (1)     服务器端的监听及新连接处理
    服务器的一个重要任务,就是持续监听端口,等待客户端的连接。当收到新的连接请求时,建立连接,并进行相应的处理。服务器的监听是一个连续不断的过程,当新连接建立后,还需要继续监听,循环不断。在执行监听动作Listen时,当前线程将阻塞于此。所以,服务器的监听处理,不能放在主线程中,必须放在一个独立的线程中,否则将导致主界面无响应。
    当收到连接请求后,服务器端将建立一个新的连接。这个连接可能会存在一段时间,进行数据的收发。连接的处理和主线程以及监听线程有相对独立性,也需要放在一个独立的线程中。
    (2)     连接线程的处理
    在连接线程中,无论在服务器端还是客户端,都需要相同的处理:信息的收发。可以将连接的收发分开处理,在连接线程中主要完成数据的接收,而把数据的发送放到一个公共的线程中;也可以把接收和发送放在一个线程中处理。后者相对简单,以下是这种方法的实现。
    A     阻塞读,如果接收到数据,放到接收缓冲区中;
    B     阻塞读方法设定有一个超时值,如果超时,将进行后面的动作;
    C     检查发送缓冲,如果有待发送的内容则进行发送,没有则继续往后执行;
    D     线程sleep一段时间;
    E     循环,再次回到(1)进行阻塞读。
    (3)     多线程处理的不足
    使用多线程的方式进行Socket通信,是最常用、最直观的方法,容易理解,代码逻辑也比较直观。但是,使用这种方式也有不足之处:
    A     在服务器端监听、连接线程读入数据时,都采用了阻塞的方式。必须采用多线程方式处理才能不影响程序的执行,而过多的线程操作,增加了程序的复杂度。
    B     由于线程的创建、管理都需要开发者来进行控制,而网络的情况又复杂多变,对程序的稳定性影响较大。
    C     多线程方式开发较复杂,不便用于一些轻量级的应用场合。
    2.2.2     使用异步方式处理
    .NET的Socket通信支持异步方式,它不用阻塞等待,当事件发生后,会自动调用回调函数进行处理。异步方式通信,从本质上来说,仍然也是以多线程方式进行的:当执行异步委托时,也不是在主线程执行,而是在独立的线程中执行。只不过这些独立线程来源于系统的线程池,由系统分配和文护,对用户来说,无需管理和控制。这样就降低了代码的复杂度,同时减少了因为线程管理不当影响系统稳定性的风险。
  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

关闭返回