代码之家  ›  专栏  ›  技术社区  ›  Raafat

Ruby套接字问题

  •  0
  • Raafat  · 技术社区  · 16 年前

    我对ruby还比较陌生,但我已经习惯了使用ruby套接字,因为我多次使用“socket”类,所以我可以完全控制我的套接字及其选项。

    问题是我试图让它对我来说有点简单,所以我试图使用'tcpsocket'类,witch(我猜)没有给你像'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”类手工编写整个socket要容易得多。

    1 回复  |  直到 12 年前
        1
  •  2
  •   Aaron Hinni    16 年前

    第二个参数 send flags 参数。它被传递到 发送 系统调用。您通常希望将此设置保留在0。

    在我的系统中,根据man页面,其他可能的标志是:

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