我正在尝试使用 Racket 来监听通过我机器上的端口 80 移动的数据包。但是,我似乎对数据包嗅探器如何工作的理解,对 Racket 如何工作的理解,或两者兼而有之。
这是我的代码(大部分来自Racket 的维基百科条目)。
#lang racket
(require racket/tcp)
(define listener (tcp-listen 80))
(define (echo-server)
(define-values (in out) (tcp-accept listener))
(thread (lambda () (copy-port in out)
(print (read in))
(close-output-port out)))
(echo-server))
(echo-server)
当我连接到时,localhost:80
我会收到一些反馈 - 但是当我尝试使用我的网络浏览器时,我无法打印任何东西。如何修改此代码,以便它可以侦听从 Web 请求传入和传出的数据包?