如何在Python套接字中使用浏览器作为客户端?
我在网上搜索过这个话题,但没有找到答案。
如果有人知道怎么在Python的socket中用浏览器作为客户端,那就太好了。
2 个回答
1
你可以考虑使用websockets。它们的工作方式类似于普通的TCP套接字,但启动时需要进行HTTP握手,这使得它们适合在浏览器中使用。现在所有主流浏览器的最新版本都支持websockets。
有很多库可以帮助你将常见的Python网络服务器调整为支持websockets,比如:
https://pypi.python.org/pypi/gevent-websocket/
如果你喜欢使用gevent的话。
websockets还支持SSL加密,这样在浏览器中使用时,网址会以“wss://”开头。想了解更多信息,可以查看这里:
1
要把浏览器当作客户端来连接一个Python(服务器)socket,你只需要把它指向正确的地址。
假设你在同一台机器上运行浏览器和Python服务器,并且在服务器的socket上打开了1234端口,那么你只需在浏览器中打开 localhost:1234
这个网址。
当然,接下来发生的事情完全取决于你在程序中如何处理通信。大多数浏览器能理解直接发送到socket的纯文本,但你可能更想使用HTTP协议。
值得一提的是,使用普通的 socket
和浏览器进行通信,充其量是比较少见的。根据你具体想做的事情,可能有更好的解决方案:
- 如果你只是想快速从一个目录中提供几个文件(通常称为“目录列表”),你可以使用
SimpleHTTPServer
。 - 如果你想建立一个网站,应该考虑使用一些网页框架,比如Django、Flask或CherryPy。
- 如果你想要更底层的、高度异步且可扩展的通信,Tornado是一个很受欢迎的选择。