Socket发送文件,应该如何设计通信协议?Socket以流的方式把数据发送出去,比如:我要发送一文件(data.txt),在发送此文件数据流时还要发送文件名及此文件的长度,不然对方收到时不知道用什么文件名来存储,发送数据时我们要如何组织数据,在收到数据时,我们应该如何把数据还原成有效的格式?双方的通信存在着一种协议,小弟思来想去都找不到方法,来此请教高手们!

解决方案 »

  1.   


    简易协议
    文件名长度 int   4字节
    文件名     char  根据文件名长度决定
    文件长度   long  8字节
    文件本身   byte  根据文件长度决定
    处理时先接收到4个字节,转成int后,再根据这个数值接收文件名。
    再接收8字节,转成long后,再根据这个数值接收byte,最后写成文件就OK了。
      

  2.   

    想怎样设计就怎样设计,最好有扩展方式...扩展方式设置在包头里,一个大一点的包体就OK.序列化NET里不怎好用.没有C++好.都是应用协议....随便设计了.