将python客户机服务器转换为web

2024-04-29 16:32:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个简单的echo服务器,我想用它作为一个简单的web服务器示例。在

到目前为止,我有服务器:

在服务器.py在

from socket import *
import threading
import thread

def handler(clientsock,addr):
    while 1:
        data = clientsock.recv(BUFSIZ)
        if not data:
            break
        msg = 'echoed:... ' + data
        clientsock.send(msg)
     clientsock.close()

if __name__=='__main__':
    HOST = 'localhost'
    PORT = 21567
    BUFSIZ = 1024
    ADDR = (HOST, PORT)
    serversock = socket(AF_INET, SOCK_STREAM)
    serversock.bind(ADDR)
    serversock.listen(2)

    while 1:
        print 'waiting for connection...'
        clientsock, addr = serversock.accept()
        print '...connected from:', addr
        thread.start_new_thread(handler, (clientsock, addr))

我想使用websockify,我发现它可以使用以下方式包装现有程序:

./websockify 2023 -- PROGRAM ARGS

如何使用上述命令运行上一个服务器?当服务器.py正在另一台计算机上运行?如果是。如何修改上述命令?

有人能提供一个简单的HTML5示例来演示client.html应该是什么样子吗?请记住,我希望能够在不支持原生websocket的浏览器上使用这个示例。我认为websockify可以使用web-socket-js来实现这一点。在

他们说:It has transparent support for binary data and has automatic fallback to the web-socket-js Flash Websocket shim/polyfill if the browser does not support WebSockets natively


Tags: frompyimport服务器web示例dataif
1条回答
网友
1楼 · 发布于 2024-04-29 16:32:08

为了与websockify接口,我建议您的客户机HTML/Javascript使用include提供的库/websock.js网站. websock.js API与标准WebSockets稍有不同。在

我刚刚把一个非常simple HTML client page推到了websockify存储库中。在

把你的服务器.py在同一个系统上,您可以像这样运行websockify:

./websockify  web ./ 21567   server.py

将简单客户端加载到“http://localhost:21567/测试/简单.html". 输入“ws://本地主机:21567“作为websocketuri并点击connect。请注意,换行模式使用重新绑定so你必须建立一个可以移动监听端口的方法,这样websockify就可以为你提供干预。在

您也可以在同一系统上单独运行websockify:

^{pr2}$

在这种情况下,您可以浏览到“http://localhost:6080/测试/简单.html并使用“ws://本地主机:6080“作为要连接到的URI。在

如果您想在不同于服务器.py正在运行,则需要更改服务器.py监听公共接口而不仅仅是“本地主机”。一旦你做出改变,如果服务器.py在192.168.1.7上运行,则可以在192.168.1.5上运行websockify,如下所示:

在192.168.1.7发射服务器.py公司名称:

./server.py

在192.168.1.5上启动websockify并将其指向服务器.py在另一个系统上:

./websockify  web ./ 6080 192.168.1.7:21567

然后浏览到“http://192.168.1.5:6080/测试/简单.html并使用URI“ws://192.168.1.5:6080”。在

或者,如果您只是希望您的服务器成为WebSocket服务器,那么您可以使用websocket.py库没有完整的websockify功能,直接让你的服务器。请参阅websockify中包含的tests/echo.py示例,它是一个简单的WebSocket回送服务器。在

相关问题 更多 >