2009-10-17 3 views
0

Я по-прежнему новичок в рубине, но я стал использовать рубиновые сокеты, потому что я использовал класс «Socket» много раз, и поэтому я полностью контролирую свои сокеты и их варианты.ruby ​​socket issue

Дело в том, что я пытаюсь сделать его немного легким для меня, поэтому я пытаюсь использовать класс «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».

ответ

2

Второй параметр send - это параметр flags. Он передается на системный вызов send. Вы обычно хотите оставить это на 0.

На моей системе, согласно странице человека, другие возможные флаги:

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