什么是TCP Socket.send的Ruby中的第二个参数?
题
我使用这条线通过一个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 记载。
不隶属于 StackOverflow