代码之家  ›  专栏  ›  技术社区  ›  Marcx

.Net使用Chr()解析文本

  •  1
  • Marcx  · 技术社区  · 14 年前

    客户端将数据发送到服务器,服务器将数据重新发送到所有其他客户端。我使用TcpListener和networkstream类在客户机和服务器之间发送数据。

    我还使用ASCII字符30来标记流数据的结束。

    数据用UTF8编码。。

    这是个好办法吗?我会遇到麻烦吗?有更好的方法吗?

    更新:

    可能我的问题被误解了,所以我解释得更好。。 假设有一个从客户机发送到服务器的数据列表,并且假设只发送一个流中的所有数据,那么如何发送这些数据?

    • 使用标记
    • 使用字符作为分隔符
    • 对每个字段使用固定长度
    2 回复  |  直到 14 年前
        1
  •  7
  •   Jon Skeet    14 年前

    我发现它没有给文本划界 许多的 更简单的长度前缀个别消息-所以,而不是写

    message [TERMINATOR]
    

    [LENGTH] message
    

    (以二进制形式发送长度,而不是以文本形式发送-或者是固定长度的数字,例如4字节,或者是可变长度的数字,如果您愿意牺牲简单性来稍微减小传输的数据大小的话。)

    这样就很容易从流中准确地读取正确数量的数据,而不必担心过多地进入下一条消息。唯一的缺点是在你开始发送之前你需要知道消息的长度,但我认为在这种情况下这不应该是你的问题。

    编码 ,不是加密算法。

        2
  •  0
  •   Javier    14 年前

    我认为另一种选择是序列化/反序列化对象,并使用 .NET Remoting . 您还可以在发送时加密对象,在接收时解密对象。

    The Code Project 我找到了一个源代码的小例子。