待开发软件的功能:需要对接收到TCP报文进行解析,实现是登录的报文还是透明转发的功能
处理的方法:
方法1.接收到报文,立即调用相应的解析报文函数处理 public parseFrame(byte[] frame);方法2:接收到报文后放入容器中,新增一个线程while循环处理该容器的报文采用哪个方法好点,为什么?

解决方案 »

  1.   

    不要增加线程。如果想减少block的时间,parseFrame改成异步调用就行了。
      

  2.   


    这个工具开了两个端口:
    一个是服务器监听端口30005,由TcpListner对象管理,负责接受客户端连接并且接受客户端的报文
    一个是连接另外一个服务器程序A(端口30004),有TcpClient对象创建,负责转发客户端报文到A程序
    而在parseFrame函数内部调用了TcpClient.Write这个函数,假设现在有大量客户端连接如果是异步调用的话,一个客户端正在执行TcpClient.Write函数,另外一个客户端又异步调用parseFrame,这样不会出现异常情况吗?不会抢夺一个TcpClient资源了吗?这其中的原理是?