我仍然是红宝石的新手,但我习惯使用红宝石套接字,因为我多次使用'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'类手工编写整个套接字要容易得多。
答案 0 :(得分:2)
send
的第二个参数是flags
参数。它被传递到send
系统调用。您通常希望将其保留为0。
在我的系统上,根据手册页,其他可能的标志是:
#define MSG_OOB 0x1 /* process out-of-band data */
#define MSG_DONTROUTE 0x4 /* bypass routing, use direct interface */