ララ、私はまた、あなたがソケットに完全に知られていないものとしてやろうとしていることをしようとしています。 #R
freenodeチャットルーム私に適切なアドバイスを与えた:telnet
を使用してください。
ので、ターミナルウィンドウ1:
R
は、(それに話をするために誰かを待っている)今ハングする必要があります。
は今、別のターミナルウィンドウと型を開く:
telnet localhost 12345
はあなたがR
がぶら下がっもはや見られないだろうバックウィンドウ1に移動します。良い!だから今(同じウィンドウ1)タイプ:窓2に
readChar(s,3)
戻り、telnet
ウィンドウ。タイプ:あなたは、ウィンドウ1に表示されますどのような
Lalas wins at life.
は、ウィンドウ1の境界を越えどこかに入っているテキストで、入ってきたので、
Lal
は残念ながらreadChar
は短いメッセージを期待していた1窓、あなたはすべてを手に入れませんでした。もう一度とお試しください。
as win
となります。readChar(s,1)
は「そこにぶら下がっている」ような文字を聞いていることがわかります(どこに?)。奇妙な。しかし、これはメッセージの長さをあらかじめ指定しなければならないので、聞く迷惑な方法です。
try readLines(s)
この仕様を必要としません。 EOL文字を待ちます。その後、
Money
that's what I want
that's what I waaaaaaaant
私はreadLines(s)
は私を聞くために得ることを理解することができる唯一の方法は、Ctrlキーによりだった]「プロンプトを取得するためにtelnet
にすると:
戻るウィンドウ2に、Telnetウィンドウclose
ing。今これはでernst
からより多くの助けを使用している1
R
は(あなたが\r\n
などを入力した場合でも)、これらすべての改行を聞くことはありませんが、接続がクローズされたら、ウィンドウ内の各ラインを取得します同じfreenodeルーム。今回はtelnet
を使用する代わりにnc localhost 12345
を使用しました。 Netcatは聞き取り、話すことができ、私はEOLとCtrlDと送ることができます。
ウィンドウ1のソケット接続を閉じてもう一度開きます。s = socketConnection(port=12345,server=T)
。ウィンドウ2でtelnet
を閉じ、代わりにnc localhost 12345
と入力します。今すぐ両側にメッセージを入力すると、それらを互いに受け取ることができます。
ウィンドウ1:
cat(rpois(1e2, 20), file=s)
readLines(s)
は、ウィンドウ2(すでにいくつかのランダムな数字を聞いたことがあるはずです):
Lalas
wins
at
life.
{{control D}}
窓1は現在のメッセージを受け取っているはずです。