【问题标题】:ruby socket issue红宝石套接字问题
【发布时间】:2009-10-17 22:32:40
【问题描述】:

我还是 ruby​​ 的新手,但我习惯于使用 ruby​​ 套接字,因为我多次使用 'Socket' 类,所以我可以完全控制我的套接字及其选项。

问题是我试图让它对我来说有点容易,所以我试图使用“TCPSocket”类,女巫(我猜)不像“Socket”类那样给你太多控制权.

我的脚本如下所示:

require 'socket'
client = TCPSocket.open('5.5.5.5', '5555')
client.send("msg", 0) # 0 means standard packet
client.close

问题是,发送线上的“0”应该是什么?如果'0'表示标准数据包,除了标准之外可以存在什么,它是对TCP数据包的一些控制吗?如果是这样,那对我来说这将比使用 'Socket' 类手动编写整个套接字要容易得多。

【问题讨论】:

    标签: ruby sockets tcpsocket


    【解决方案1】:

    send 的第二个参数是flags 参数。它被传递给send 系统调用。您通常希望将其保留为 0。

    在我的系统上,根据手册页,其他可能的标志是:

    #define MSG_OOB        0x1  /* process out-of-band data */
    #define MSG_DONTROUTE  0x4  /* bypass routing, use direct interface */
    

    【讨论】:

      猜你喜欢
      • 2013-01-18
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2010-09-09
      • 2011-04-29
      • 2016-05-16
      • 2015-07-17
      相关资源
      最近更新 更多