0

私はまだ Ruby の初心者ですが、「Socket」クラスを何度も使用していたため、Ruby ソケットの使用に慣れてきたので、ソケットとそのオプションを完全に制御できます。

問題は、私はそれを少し簡単にしようとしているので、「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 パケットに対する何らかの制御ですか?? もしそうなら、「ソケット」クラスを使用してソケット全体を手動で記述するよりもはるかに簡単です。

4

1 に答える 1

2

の 2 番目sendのパラメーターはflagsパラメーターです。sendシステムコールに渡されます。通常は 0 のままにしておきます。

私のシステムでは、マニュアルページによると、他の可能なフラグは次のとおりです。

#define MSG_OOB        0x1  /* process out-of-band data */
#define MSG_DONTROUTE  0x4  /* bypass routing, use direct interface */
于 2009-10-18T01:24:54.443 に答える