怎么有效的读数据来区分消息块。比如 哪里是消息头的开始,到哪里结束了。
又考虑到读的效率呢?

解决方案 »

  1.   

    feeboby(诺曼之路):
      那我需要一个一个的读数据吗?可以不可以大块读?
      

  2.   

    参考
    http://expert.csdn.net/Expert/topic/2266/2266389.xml?temp=.82539
      

  3.   

    TCP没有消息之分吧,你自己定义的需要自己分辨
      

  4.   

    tcp是一种典型的流协议,没有头尾,你的程序所能得到的就是连续的字节流,你当然可以大块的读数据,其实确切的说应该是尽可能的读,也就是你能把所有收到的数据都读出来,但是要区分头尾,必须要加你自己程序能够识别的头尾信息,也就是要实现自己的协议.
      

  5.   

    看看CSDN上的关于"OICQ协议"的介绍,对你会有启发!!!
      

  6.   

    如下:
    {
    uint msg_type
    uint msg_len
    char buf[1]
    }buf的实际长度由msg_len指示,具体的数据结构由msg_type定义,基本上就可以组建自几的协议了。