2009-10-17 201 views
0

我還是一個新手紅寶石,但我成爲了使用紅寶石套接字,因爲我多次使用'套接字'類,所以我完全控制我的插座和他們的選擇。我試圖使用'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'類來手工編寫整個套接字會容易得多。

回答

2

send的第二個參數是flags參數。它被傳遞到send系統調用。通常你會想爲0

在我的系統離開這一點,根據手冊頁,其他可能的標誌是:

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