我正在使用Ruby來測試使用套接字的C#網絡應用程序。我打開與@socket = TCPSocket.new(IP,PORT)
的連接,它的工作原理 - 直到我想發送的文本超過1024個字符。然後Ruby將消息分成兩部分。 C++和C#將消息作爲一個包發送,因此C#應用程序不需要加入這些部分。使用Ruby指定數據包大小TCPSocket
消息永遠不會超過約。 2000字符。是否有可能爲TCPSocket設置數據包大小?
編輯: 你的答案是正確的,但所以這裏閱讀了大量的紅寶石插座的問題後,我找到了解決辦法:
socket.send(msg,0x4)
不會拆分消息。直接發送的選項有所不同。
我不知道這是否可以通過互聯網工作,但它在我的測試實驗室工作。
Thx尋求幫助。
你不應該使用TCP的數據報協議。 TCP抽象是一個流 - 你的服務器不應該關心單個數據包。無論如何,如果Ruby不會搞亂你的數據包,那麼一些中介(例如路由器)可能會這樣。 – hrnt 2009-11-02 13:40:29