我使用这条线通过一个Ruby(1.8.7)套接字发送消息:

@@socket.send login_message, 0

(这工作正常)

什么是第二个参数为?我找不到发送方法在Ruby API文档...

我首先想到,这是该消息的一些C样式的长度。这就是为什么我用login_message.length作为第二个参数。这工作,但我遇到了一个奇怪的现象:

一切工作正常时,第二个参数是一个奇数。如果是偶数的最后一个字符被接收时对对方失去了(另一面是与C座C ++程序)。我检查了网络流量使用Wireshark,发现包好看。所有的数据是完整的。为什么当我收到它的最后一个字符失去了什么?

感谢您 伦纳特

有帮助吗?

解决方案

这是标志参数,同样作为最后一个参数到 send() 系统调用。正常情况下应该是0,但可能类似于Socket::MSG_OOB(发出带外数据)。为Ruby 1.9,这是根据 BasicSocket 记载。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top