0

我正在 Windows 操作系统上使用 python 中的 libmodbus.dll 创建一个 modbus 从站。我使用 ctypes 来加载 dll 并利用它的功能。我在这里模仿了一个示例代码。dll 中的一个调用最终打开了一个套接字

s = modbus_tcp_listen(ctx, 1);

在示例的末尾,它有一行关闭套接字,如下所示

close(s);

close()不是 libmodbus.dll 的一部分。它来自图书馆#include <unistd.h>。有没有办法关闭套接字而不必获取具有该close()功能的 dll?close()如果没有,我将如何在 Windows 平台上访问该命令?据我所知unistd.h是针对posix的。

4

1 回答 1

0

您可以使用socket.close(fd)which 接受套接字描述符并关闭它。

import socket
...
server_socket = mbpi.modbus_tcp_listen(self._ctx, 1)
...
socket.close(server_socket.value) # Need to call attribute value since its a ctypes.c_int
于 2020-12-13T07:49:48.497 回答