如何在python中通过web套接字服务器侦听localhost流量



我正在尝试以一种非常核心的方式在Python中实现URL缩短器,而不使用任何web框架,如FLASK或Django,以更好地了解web套接字的工作方式。我创建了一个客户端脚本,该脚本通过一个套接字连接到服务器,该套接字在80端口的localhost上侦听。然后,服务器通过一种算法将URL缩短为https://127.0.0.1/something并将其发送到客户端,还将其存储在数据库中。到目前为止,这是客户端服务器使用套接字完成的最基本的消息交换交互。

现在我想做的是每当我在浏览器中输入缩短的URL时,即。https://127.0.0.1/something,它应该由在localhost上运行的服务器套接字捕获。有可能吗?如果是,如何?我只需要知道我能做什么,但伪代码也会有所帮助。

~问候

是的,这是可能的。服务器可以在带有套接字的python中完成,下面是代码。
import socket
HOST = '127.0.0.1'  # Standard loopback interface address (localhost)
PORT = 65432        # Port to listen on (non-privileged ports are > 1023)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
conn, addr = s.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(1024)
if not data:
break
conn.sendall(data)

这段代码可以随心所欲地工作,并且可以编辑。首先,我们用localhost IP和要侦听的端口定义主机和端口。然后它创建一个套接字来侦听这个地址:端口,当连接到来时,它将打印连接的客户端的IP地址,然后侦听来自客户端的消息。在它收到消息后,您可以运行算法并将您的值返回给客户端。注意:这对你来说是一个不完整的代码,所以你需要添加你的算法和返回值,但除此之外,它工作得很好。

最新更新