.Net使用Chr()来解析文本

Mar*_*rcx 1 .net encoding networkstream utf-8 chr

我正在构建一个简单的客户端 - 服务器聊天系统.

客户端将数据发送到服务器,服务器将数据重新发送到所有其他客户端.我正在使用TcpListener和网络流类在客户端和服务器之间发送数据.

我需要发送的字段是,例如:名称,文本,时间戳等.我使用ASCII字符29将它们分开.

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

数据用UTF8编码..

这是一个好方法吗?我会遇到问题吗?有更好的方法吗?

更新:

可能我的问题被误解了,所以我更好地解释它.假设有一个从客户端发送到服务器的数据列表,并假设只在一个流中发送所有数据,你如何发送这些数据?

  • 使用标记
  • 使用字符作为分隔符
  • 为每个字段使用固定长度

Jon*_*eet 7

而不是划定的文字,我觉得很多简单的长度前缀个人信息-这样,而不是写

message [TERMINATOR]
Run Code Online (Sandbox Code Playgroud)

你会写的

[LENGTH] message
Run Code Online (Sandbox Code Playgroud)

(发送长度二进制,而不是文本 - 无论是固定长度的数量,例如4个字节,或一个可变长度数,如果你愿意牺牲简单用于减少所传输的数据大小非常轻微的缘故.)

然后,您可以轻松地从流中准确读取正确数量的数据,而无需担心过度进入下一条消息.唯一的缺点是你需要在开始发送之前知道消息的长度,但在这种情况下我不认为它应该是一个问题.

顺便说一句,UTF-8是一种编码,而不是加密算法.