However, I seem to be running into a wall with either my understanding of how a packet sniffer works
Yes. A packet sniffer does not use regular sockets; it uses whatever mechanisms are available to passively watch packets received by or sent on a network interface. If you just want to watch HTTP traffic on port 80, without responding to that traffic or altering that traffic, you will need to use something such as libpcap/WinPcap, which use the appropriate mechanism on your OS for passively watching packets. See, for example, the SPeaCap library for Racket.
Note, however, that if you passively sniff traffic, what you'll see are raw link-layer packets; to extract TCP content from them, you'll have to parse the link-layer header, IP header, and TCP header in order to find the contents. I will leave it up to you to figure out how to do that.