.NET 如何通过套接字 C-Sharp 获取 int

.NET How to get an int comming throught a socket C-Sharp

本文关键字:获取 int C-Sharp 套接字 何通过 NET      更新时间:2023-10-16

这是我的问题:

我习惯于通过 c/c++ 中的 TCP 套接字接收 int、char* 和 cie... 等数据,但是如何在 c# 中管理它呢?我将与 c++ 服务器通信,向我发送 int、bool 和 char*。我认为我更大的问题来自这样一个事实,而不是 c# = 2bytes 中的字符......

非常感谢,对不起我的英语不好:/

首先,我真的希望你实际上没有发送char*,因为这在给定进程之外毫无意义,甚至不是一个明确定义的长度。

基本上,您需要坐下来写下要发送的所有内容的编码规则。例如,您可能会说:

  • int 是 4 字节小端序
  • 文本采用 UTF-8 编码,使用长度前缀(字节,而不是字符)作为整数
  • 布尔值是单个字节(以避免边界问题)
  • 等,适用于您需要的每种数据类型

然后弄清楚您将如何对单个消息的多个字段进行分区,以及如何在同一套接字中构建多条消息。

或者,也许更好的选择是选择许多预先存在的序列化格式之一,并将思维转移到该格式上。如果您追求效率,那么"协议缓冲区"将是一个很好的选择。如果你想要简单,也许是JSON。

如果你仍然想手工编码它,那么:首先写下它在网络上的确切外观,然后实现它