关闭在 dll 中创建的套接字
Closing a socket created in a dll
我正在 Windows OS 上使用 python 中的 libmodbus.dll 创建一个 modbus 从站。我使用 ctypes 加载 dll 并利用其功能。我正在模仿一个示例代码 here。 dll 中的一个调用最终打开了一个套接字
s = modbus_tcp_listen(ctx, 1);
在示例的末尾,它有一行关闭套接字,就像这样
close(s);
close()
不属于 libmodbus.dll。它来自图书馆 #include <unistd.h>
。有没有办法关闭套接字而不必获取具有 close()
功能的 dll?如果没有,我将如何在 windows 平台上获得对 close()
命令的访问权限?据我所知 unistd.h
是 posix.
您可以使用 socket.close(fd)
获取套接字描述符并将其关闭。
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
我正在 Windows OS 上使用 python 中的 libmodbus.dll 创建一个 modbus 从站。我使用 ctypes 加载 dll 并利用其功能。我正在模仿一个示例代码 here。 dll 中的一个调用最终打开了一个套接字
s = modbus_tcp_listen(ctx, 1);
在示例的末尾,它有一行关闭套接字,就像这样
close(s);
close()
不属于 libmodbus.dll。它来自图书馆 #include <unistd.h>
。有没有办法关闭套接字而不必获取具有 close()
功能的 dll?如果没有,我将如何在 windows 平台上获得对 close()
命令的访问权限?据我所知 unistd.h
是 posix.
您可以使用 socket.close(fd)
获取套接字描述符并将其关闭。
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