红宝石插座问题

时间:2009-10-17 22:32:40

标签: ruby sockets tcpsocket

我仍然是红宝石的新手,但我习惯使用红宝石套接字,因为我多次使用'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'类手工编写整个套接字要容易得多。

1 个答案:

答案 0 :(得分:2)

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

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

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