红宝石插座问题
问题描述:
我还是一个新手红宝石,但我成为了使用红宝石套接字,因为我多次使用'套接字'类,所以我完全控制我的插座和他们的选择。我试图使用'TCPSocket'类,女巫(我猜)并没有给予太多的控制,因为'套接字'类。红宝石插座问题
我的剧本是这样的:
require 'socket'
client = TCPSocket.open('5.5.5.5', '5555')
client.send("msg", 0) # 0 means standard packet
client.close
的问题是,什么是假设是,而不是发送线路上的“0”?如果'0'表示标准数据包,那么标准数据包可以存在于标准数据包中,它是否对TCP数据包有一定的控制?如果是这样,那么对于我来说,使用'Socket'类来手工编写整个套接字会容易得多。
答
send
的第二个参数是flags
参数。它被传递到send
系统调用。通常你会想为0
在我的系统离开这一点,根据手册页,其他可能的标志是:
#define MSG_OOB 0x1 /* process out-of-band data */
#define MSG_DONTROUTE 0x4 /* bypass routing, use direct interface */