簡體   English   中英

關閉在 dll 中創建的套接字

[英]Closing a socket created in a dll

我正在 Windows 操作系統上的 python 中使用 libmodbus.dll 創建一個 modbus 從站。 我使用 ctypes 加載 dll 並利用其功能。 我在這里模仿了一個示例代碼。 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM