在端口12321上运行的echo服务器非常简单:
(define listener (tcp-listen 12321))
(define (mk-server)
(let echo-server ()
(define-values (in out) (tcp-accept listener))
(thread (λ () (copy-port in out)
(close-output-port out)))
(echo-server)))
documentation为tcp-
提供了很多功能,但它们都返回boolean?
或tcp-listener?
;我无法弄清楚哪一个会给我连接客户端的IP地址。
super simple socket server example tutorial也只提到处理客户端发送的数据。
上例中的端口in
将包含客户端发送的所有数据(标题等),但不包含关于客户端的元数据。
例如,在Factor中,accept
对象的<server>
方法返回写入/读取的双向流和数据元组:
T{ inet4 { host "127.0.0.1" } { port 36150 } }