小编use*_*531的帖子

如何在python 3中通过FTP发送StringIO?

我想通过FTP上传文本字符串作为文件。

import ftplib
from io import StringIO

file = StringIO()
file.write("aaa")
file.seek(0)


with ftplib.FTP() as ftp:
    ftp.connect("192.168.1.104", 2121)
    ftp.login("ftp", "ftp123")
    ftp.storbinary("STOR 123.txt", file)
Run Code Online (Sandbox Code Playgroud)

此代码返回错误:

TypeError: 'str' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)

python ftp bytesio stringio python-3.x

5
推荐指数
1
解决办法
1689
查看次数

如何在PyQt5中使用QWebSocket创建WebSocket客户端

我想通过在PyQt5中使用QWebSocket创建一个websocket客户端。为了方便起见,假设我有一个websocket服务器,源代码是这样的,

from PyQt5 import QtCore, QtWebSockets, QtNetwork, QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenu, QAction
from PyQt5.QtCore import QUrl

class MyServer(QtCore.QObject):
    def __init__(self, parent):
        super(QtCore.QObject, self).__init__(parent)
        self.clients = []
        self.server = QtWebSockets.QWebSocketServer(parent.serverName(), parent.secureMode(), parent)
        if self.server.listen(QtNetwork.QHostAddress.LocalHost, 1302):
            print('Connected: '+self.server.serverName()+' : '
                  +self.server.serverAddress().toString()+':'+str(self.server.serverPort()))
        else:
            print('error')
        self.server.newConnection.connect(self.onNewConnection)
        self.clientConnection = None
        print(self.server.isListening())

    def onNewConnection(self):
        self.clientConnection = self.server.nextPendingConnection()
        self.clientConnection.textMessageReceived.connect(self.processTextMessage)

        self.clientConnection.binaryMessageReceived.connect(self.processBinaryMessage)
        self.clientConnection.disconnected.connect(self.socketDisconnected)

        print("newClient")
        self.clients.append(self.clientConnection)

    def processTextMessage(self, message):
        print(message)
        if self.clientConnection:
            for client in self.clients:
                # if client!= self.clientConnection:
                client.sendTextMessage(message)
            # self.clientConnection.sendTextMessage(message)

    def processBinaryMessage(self, message):
        print("b:",message) …
Run Code Online (Sandbox Code Playgroud)

python client websocket pyqt5

1
推荐指数
1
解决办法
2271
查看次数

如何让 Python 龙卷风生成分块响应

我的python版本是3.4,我的tornado版本是4.3。我的代码是这样的:

import tornado.ioloop
import tornado.web
import tornado.httputil
import tornado.httpserver


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        body = 'foobar'*10
        self.set_header('Transfer-Encoding', 'chunked')
        self.write(body)
        self.flush()
        self.finish()


app = tornado.web.Application([
        (r'/chunked', MainHandler),
])

if __name__ == "__main__":
    app.listen(8080)
    tornado.ioloop.IOLoop.current().start()
Run Code Online (Sandbox Code Playgroud)

这根本行不通,客户端只是等待块结束。如何在使用 Tornado 服务器时正确生成分块响应?

python tornado httpresponse chunked

0
推荐指数
1
解决办法
1412
查看次数