c# socket

来源:百度知道 编辑:UC知道 时间:2024/09/25 02:33:52
如何个把一个数组用 NetworkStream 来传输?
怎么转换呢?

......直接读成二进制流,在接收端或者说服务器端接收到二进制流后 以同样的类型进行转换就好

看下这个方法.将数组类型读取为二进制流
private byte[] SerializeOnlineList()
{
StringCollection onlineList = new StringCollection();
foreach (object o in _transmit_tb.Keys)
{
onlineList.Add(o as string);
}
IFormatter format = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
format.Serialize(stream, onlineList);
byte[] ret = stream.ToArray();
stream.Close();
return ret;
}

而这是接收端的行为
byte[] onlineBuff = new byte[_maxPacket];
int byteCnt = _nws.Read(onlineBuff, 0, onlineBuff.Length);
IFormatter format = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
stream.Write(onlineBuff, 0, byteCnt);
stream.Position = 0;
StringCollection onlineList = (Strin