【发布时间】:2023-03-17 10:31:01
【问题描述】:
我正在尝试编写如下的握手类型消息,其中 C=Client S=Server:
C-->S: "I'd like to talk" //session initiation
S-->C: "80" //(n, randomly generated number)
C-->S: "81" //(n+1)
S: "does n= (n+1)-1?" //confirms the connection.
为了这个问题的目的,假设上面的逻辑是正确的。我希望我生成的随机数是 32 位数字(即在 UDP 数据报中发送的 4 个字节)。由于 int 是 32 位,我更喜欢使用这种数据类型,但我似乎遇到了两个问题之一:
- 使用字节数组时,很容易在数据报中发送,但很难对 32 位数字执行简单的数学运算(例如减 1)。
- 使用 int 时,执行简单的数学运算很容易,但在客户端和服务器之间来回发送时,很难在 int 和字节之间进行转换。
我找到了一种可以将 int 转换为字节的方法。我发现了一些关于使用 Bytebuffer 转换为 int 的信息,但我不确定它是否正确。有没有更简单的方法来处理在数据报中发送 int 的过程?不断在字节和整数之间来回转换似乎是一项非凡的工作。
【问题讨论】:
-
我认为您在将信息作为字节数组发送方面没有太多选择。你还能怎么寄呢?