c#的Socket,如何发送数组类型的值,如string[]

2025-04-13 18:13:51
推荐回答(2个)
回答1:

假设要发送的字符串数组为string[] array

       byte[] buffer;
        using (MemeoryStream stream = new MemeoryStream())
        {
            using (BinaryWirte wr = new BinaryWirte(stream))
            {
                for (int i = 0; i < array.Length; i++)
                {
                    wr.Write(array[i]);
                }
            }
            //转换成字节数组,用于Socket发送
            buffer = stream.ToArray();
        }

SOCKET发送转换后的字节数组buffer。接收方收到buffer后,执行以下代码

        List list = new List();
        using (MemeoryStream stream = new MemeoryStream(buffer))
        {
            using (BinaryReader rd = new BinaryReader(stream))
            {
                while (stream.Position < stream.Length)
                {
                    list.Add(rd.ReadString());
                }
            }
            string[] array = list.ToArray()
        }

重新得到string[] array

回答2:

只能发送流
要不你把数组定义在一个可以序列化的类里面,然后发送这个类