TCP 中Socket怎样实现一组数据的打包解包?

解决方案 »

  1.   

    如果是发送打包text1,text2,text3
    接收解包text1,text2,text3
    具体的代码该怎么写???
      

  2.   

    在网络上传递时,都是二进制的数据.
    一般来说我们会传递自定义的对象.当然这个对象需要支持序列化.这样的话,可以通过二进制序化类对象来处理它,将其变成字节数组,通过send(数组)到接受方,接受方是一个相反的过程.反序列化变成对象.如果是传字符这些的话,System.Text.Encoding.Default.getstring(xxxx),getbytes(xxx)这些可实现数据格式的转变
      

  3.   

    恩 要是只发送一条消息 接收一条已经了解
    但是如果需要一起发送多个textBox中的message
    而接收端的多个label又是一一对应的接受发送过来的消息组
    就应该用到打包解包
    小弟水平十分有限
    希望各位大侠帮助解决难题
      

  4.   


    [Serializable]
    public class MessageText
    {
       private string _Text1="";   private string _Text2="";
       
       public string Text1{get{return _Text1;}set{_Text1=value}}
       public string Text2{get{return _Text2;}set{_Text2=value}}}using  System.Runtime.Serialization.Formatters.Binary;public static byte[] ObjectToBytes(MessageText data)
    {
    BinaryFormatter Formatter = new BinaryFormatter();
    MemoryStream MemStr = new MemoryStream();
    try
    {                
    Formatter.Serialize(MemStr, data);
    }
    catch
    {
    }
    return MemStr.GetBuffer();
    }        public static MessageText BytesToObject(byte[] data)
            {
                BinaryFormatter Formatter = new BinaryFormatter();
                MemoryStream MemStr = new MemoryStream(data);
                try
                {
                    return (MessageText)Formatter.Deserialize(MemStr);
                }
                catch
                {
                    return null;
                }
            }