通过tcplistener发送对象

本文关键字:对象 tcplistener 通过 | 更新日期: 2023-09-27 18:02:57

除了字符串,还有什么方法可以通过tcplistener发送任何内容吗?因为到目前为止,我所看到的所有例子都涉及到将字符串编码为字节数组,发送它,然后在另一边解码它。

Encoding.ASCII.GetBytes("message");
//This is then sent as an array of bytes

如果我想发送一个float through,或者int through,或者其他什么呢?这是否涉及将对象"转换"为字节数组并将其发送过来?

[编辑]如果这是一个愚蠢的问题,我很抱歉,但我正试图在这里了解更多关于网络的知识。

通过tcplistener发送对象

视情况而定,如果你可以将BinaryWriter附加到NetworkStream,那么你可以这样做:

static void ServerTask(object clnObj)
{
    TcpClient client = clnObj as TcpClient;
    BinaryWriter bw = new BinaryWriter(client.GetStream());
    int k =99;
    bw.Write(k);
    client.Close();
}

但是当以二进制形式发送时,你应该小心像端序这样的东西。对于浮点数,重要的是编码,它必须是相同的接收和发送部件。但我认为BinaryReader, BinaryWriter为您处理这些(例如,端序是固定的)。

最后,所有内容都以字节数组的形式发送。这里只有BinaryWriter是一个抽象,它为您完成将整数转换为字节数组的工作。