【发布时间】:2018-05-19 21:33:38
【问题描述】:
我正在尝试在 Racket 中创建一个简单的回显服务器和客户端。
这是服务器:
(define (hello_listen port)
(define listener (tcp-listen port))
(define (loop)
(define-values (in out) (tcp-accept listener))
(thread (lambda ()
(copy-port in out)
(close-output-port out)))
(loop))
(loop))
这是客户端:
(define (hello_socket port)
(define-values (in out) (tcp-connect "localhost" port))
(write "hello socket world\n" out)
(display (read in)))
客户端没有收到任何返回的文本,只是挂起读取。
然而,当我用 Python 编写一个简单的客户端时,行为很好:
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> s.connect(('localhost', 9999))
>>> s.send("hi")
2
>>> s.recv(500)
'hi'
我在 Racket 客户端代码中遗漏了什么?
【问题讨论】:
标签: sockets networking client racket