2009-07-18 129 views
2

我使用這條線通過一個Ruby(1.8.7)套接字發送消息:Ruby中TCPSocket.send的第二個參數是什麼?

@@socket.send login_message, 0 

(這工作正常)

什麼是第二個參數呢?我無法在Ruby API文檔中找到發送方法...

我首先想到它是一些C風格的消息長度。這就是爲什麼我使用login_message.length作爲第二個參數。這工作,但我遇到了一個奇怪的行爲:

一切工作正常,當第二個參數是一個奇數。如果它是偶數,那麼最後一個字符會在另一端接收時丟失(另一端是帶有C套接字的C++程序)。我用Wireshark檢查了網絡流量,發現這些數據包看起來不錯。所有的數據都是完整的。爲什麼我收到最後一個字符時會丟失?

謝謝 倫納特

回答

4

這是標誌參數,一樣的最後一個參數send()系統調用。通常它應該是0,但可能類似Socket::MSG_OOB(發送帶外數據)。對於Ruby 1.9,這在BasicSocket下有記錄。

+0

非常感謝! :) – 2009-07-18 17:44:22

相關問題