小编Ser*_*hik的帖子

带有同步代码的 asyncio

我有一个模块可以阻止对某些 TCP 服务器的网络请求并接收响应。我必须将它集成到 asyncio 应用程序中。我的模块看起来像这样:

import socket

# class providing transport facilities
# can be implemented in any manner
# for example it can manage asyncio connection
class CustomTransport:
    def __init__(self, host, port):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.host = host
        self.port = port

    def write(self, data):
        left = len(data)
        while left:
            written = self.sock.send(data.encode('utf-8'))
            left = left - written
            data = data[written:]

    def read(self, sz):
        return self.sock.recv(sz)

    def open(self):
        self.sock.connect((self.host, self.port))

    def close(self):
        self.sock.shutdown(2)


# generated. shouldn't be modified
# …
Run Code Online (Sandbox Code Playgroud)

python python-3.x async-await python-asyncio

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

使用预安装的软件包从源代码构建 grpc

我正在尝试将 gRPC 集成到现有项目中。它已经有包含安装的所有 gRPC 依赖项(ssl、c-ares、protobuf 和 zlib)的目录。我想在构建 gRPC 时使用它们,并将 gRPC 安装到同一目录中。我下载了 gRPC 存档(没有克隆位于 grpc/third_party/ 中的子模块),并尝试生成构建系统,用于构建 gRPC 并将其安装到我的目标文件夹中(使用 cmake)。

我使用了以下命令:

cmake -DCMAKE_INSTALL_PREFIX=$PREFIX -DgRPC_ZLIB_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_SSL_PROVIDER=package -DgRPC_CARES_PROVIDER=package
Run Code Online (Sandbox Code Playgroud)

并得到一个错误:

CMake Error at cmake/cares.cmake:34 (find_package):
Could not find a package configuration file provided by "c-ares" with any
of the following names:

c-aresConfig.cmake
c-ares-config.cmake
Add the installation prefix of "c-ares" to CMAKE_PREFIX_PATH or set
"c-ares_DIR" to a directory containing one of the above files.  If "c-ares"
provides a separate development package or SDK, be sure …
Run Code Online (Sandbox Code Playgroud)

cmake c-ares grpc

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

标签 统计

async-await ×1

c-ares ×1

cmake ×1

grpc ×1

python ×1

python-3.x ×1

python-asyncio ×1