我正在Windows OS上的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。
你可以使用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