[Gauche-devel-jp] send/recv

Back to archive index

Kimura Fuyuki fuyuk****@nigre*****
2003年 12月 10日 (水) 10:17:42 JST


どこかで誰かが要望を出していたような気がするので、send/recvをサポート
するパッチを作りました。テストとレビューをお願いします。

http://www.nigredo.org/fuyuki/sendrecv.patch

(untabifyしたせいで無駄にパッチが大きくなっています)

APIはpythonのものに近くなっていますが、全体的にあまり自信がありません。
こうしたほうがいいとか希望とかあったら教えてください。

Function: socket-send socket message &optional flags
Function: socket-sendto socket message to &optional flags
Function: socket-recv socket nbytes &optional flags
Function: socket-recvfrom socket nbytes &optional flags

pythonのほかにも、ruby, perl, guileのAPIを参照しました。

udp echoサーバとお話するコードはこんな感じになります。

(use gauche.net)
(let ((sock (make-socket |PF_INET| |SOCK_DGRAM|))
      (addr (make <sockaddr-in> :host :loopback :port 7)))
  (port-for-each (lambda (line)
                   (socket-sendto sock line addr)
                   (receive (msg from) (socket-recvfrom sock 1024)
                     (print (sockaddr-name from) " " msg)))
                 read-line))

実行例。

$ date|gosh udpecho.scm
127.0.0.1:7 Wed Dec 10 09:26:52 JST 2003

-- 
木村 冬樹



Gauche-devel-jp メーリングリストの案内
Back to archive index