在传输中网络消息处理模块即充当服务器又充当客户端角色。
  例如当A监听UDP/500端口时,它是服务器,作为协商的响应者。服务器生成另一个socket用于它们之间的协商通信。当它发出协商请求时,它作为协商的发起者充当客户端,B则是client。模块的功能是把本地的IKE载荷数据封装成UDP报,把接收到的UDP/500数据报剥离出IKE载荷。
  当网络消息处理模块向外发送UDP报时,为了防止报文丢失就在超时事件队列中注册此事件。当设置的超时时间到达,超时事件处理模块就调用注册的超时处理函数,重发或丢弃。直到它重发次数到达或此事件被清除。当需要的报文到达时,网络消息处理模块又会把注册的超时事件从队列中清除。生成的sa对象的过期事件同样注册在超时队列中。当软过期或硬过期到达,调用注册的处理函数,重协商或删除sa.如果B系统处理的业务逻辑非常复杂,那就别论了.需要占用很高的内存和CPU,你可以强占cpu,提高优先级

解决方案 »

  1.   

    那请问如何提高优先级来强占CPU
    这样设置以后,是否会影响其它线程的处理?
      

  2.   

    线程可以设定优先级,高优先级的线程可以安排在低优先级线程之前完成。一个应用程序可以通过使用线程中的方法setPriority(int),来设置线程的优先级大小。 
    你试下
      

  3.   

    三分钟都响应不了一次socket……
      

  4.   

    没有什么好的办法
    如果A发给B的指令,B做了一些业务操作,
    A没有及时受到B的响应,这时A可以发一个让B回滚业务的操作之后
    连续发几个如果B还是没有响应,这是可以考虑记录日志了。