我正在嘗試使用球拍偵聽移動通過我的機器上的端口80的數據包。然而,我似乎正在陷入困境,要麼我理解數據包嗅探器的工作原理,要麼理解Racket的工作原理,要麼理解這兩者。如何使用球拍偵聽數據包?
這是我的代碼(大部分來自Racket's Wikipedia entry)。
#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瀏覽器,我不能得到任何打印。如何修改此代碼,以便它可以監聽來自Web請求的數據包?
通過寫入移動我得到的印象,你想攔截通信到端口80,而你的代碼只適用於代表它運行的機器,如http:// localhost/blabla而不是嗅探器的網址。如果你只是在尋找嗅探器,我建議wireshark。 – Sylwester
我相信你想要實現一個_proxy server_而不是一個回顯服務器:一個進程在HTTP連接中間站立,並在允許正常通信的同時「看到」所有傳入/傳出通信。 –
@ÓscarLópez是的,我相信這就是我正在尋找的東西 - 你能否詳細解答我的代理服務器和代理服務器之間的區別(簡單地說,如果我問得太多)? – sdasdadas