2009年10月21日水曜日

10/21 SPADEとTCP

stream foo = Source()["uri"]{}

uri部分をstcp://addr:portとするとTCPサーバ、
ctcp://addr:portとするとTCPクライアントとなる。

Rubyなどで直接これらにデータを与えるようなコードを書くような機会は多いと思うが、
System SではTCPで受け取ったデータの区切りを改行コードで判定しているようなのでそこは注意。

sock.write(ARGV[0])みたいなコードでstcpとやりとりすると、何度実行しても結果が反映されません。
改行コードがやってくるまでストリームを流さず、ひたすらデータをバッファして待ち受けているからです。

◎: sock.write(ARGV[0] + "\n")
×: sock.write(ARGV[0])

0 件のコメント:

コメントを投稿