本文介绍了如何在球拍中使用TCP?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图将邮件从客户端发送到服务器,然后在服务器上打印该邮件。
server.rkt:
#lang racket (define the-listener (tcp-listen 9876)) (define-values (in out) (tcp-accept the-listener)) (displayln (read in)) (tcp-close the-listener)client.rkt:
#lang racket (define-values (in out) (tcp-connect "localhost" 9876)) (write "Hello" out) 我先运行server.rkt,然后在终端中运行client.rkt。但服务器仅打印#<eof>,而不打印Hello消息。为什么?怎样做才是正确的呢?
推荐答案发送消息后需要用flush-output刷新客户端输出。 在客户端和服务器上使用后,也不要忘记使用close-input-port和close-output-port干净地关闭端口。
编辑:要回答问题的第一部分,您会得到#<eof>,因为您的客户端在其输出端口被刷新之前就完成了,这将关闭此输出端口,因此服务器会收到此文件结束消息(但这里的意思是"流结束"),您可以使用eof-object?进行测试。
更多推荐
如何在球拍中使用TCP?
发布评论