gpt4 book ai didi

ruby - 使用 Ruby TCPSocket 指定数据包大小

转载 作者:行者123 更新时间:2023-12-03 12:06:59 25 4
gpt4 key购买 nike

我正在使用 Ruby 测试使用套接字的 C# 网络应用程序。我用 @socket = TCPSocket.new(IP,PORT) 打开连接它有效 - 直到我要发送的文本超过 1024 个字符。然后 Ruby 将消息分成两部分。 C++ 和 C# 将消息作为一个数据包发送,因此 C# 应用程序不需要加入这些部分。

消息永远不会超过大约。 2000 个字符。是否可以为 TCPSocket 设置数据包大小?

编辑:
你所有的答案都是正确的,但是在阅读了很多关于 SO 的 ruby​​ socket 问题之后,我找到了解决方案:

socket.send(msg,0x4)

不拆分消息。直接发送的选项有所不同。

我不知道这是否适用于互联网,但它适用于我的测试实验室。

感谢您的帮助。

最佳答案

TCP 是一种流协议(protocol)。它不关心应用程序“消息”。 TCP 理论上可以在一个数据包或 1024 个数据包中发送您的 1024 个字节。
也就是说,请记住以太网 MTU是 1500 字节。因素 IP header ,通常为 20,和 TCP header ,至少为 20。那么您的 2000 字符消息将必须以至少两个数据包的形式发送。 TCP 还进行流量控制,这可能与问题有关。找出线路上发生了什么的最好方法是使用 tcpdumpwireshark .

关于ruby - 使用 Ruby TCPSocket 指定数据包大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1661367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com