我正在使用这一行通过 Ruby (1.8.7) 套接字发送消息:
@@socket.send login_message, 0
(这工作正常)
第二个参数是干什么用的?我在 Ruby API 文档中找不到 send 方法...
我首先认为这是一些 C 风格的消息长度。这就是我使用 login_message.length 作为第二个参数的原因。那行得通,但我遇到了一个奇怪的行为:
当第二个参数是奇数时,一切正常。如果它是偶数,则最后一个字符在另一端接收时会丢失(另一端是带有 C 套接字的 C++ 程序)。我用 Wireshark 检查了网络流量,发现数据包看起来不错。所有的数据都是完整的。为什么我收到最后一个字符会丢失?
谢谢伦纳特