Как определить структуры SOCKET в ctypes?
Я пытаюсь использовать ctypes для создания разъема Bluetooth в python2.5 (на самом деле PythonCE, более поздняя версия недоступна). Я не уверен, как определить возвращаемую структуру SOCKET socket (AF_BT, SOCK_STREAM, BTHPROTO_RFCOMM)
в типах.
winsock2.h
#define WSAAPI FAR PASCAL
...
#if INCL_WINSOCK_API_TYPEDEFS
typedef
SOCKET
(WSAAPI * LPFN_SOCKET)(
IN int af,
IN int type,
IN int protocol
);
#endif /* INCL_WINSOCK_API_TYPEDEFS */
также я победил WSDATA, как показано ниже. Будучи новичком в C++ и ctypes, я не уверен, правильно ли это.
#typedef struct WSAData {
class WSADATA( Structure ):
__fields__ = [
( 'wVersion', w.WORD), # WORD wVersion;
('wHighVersion', w.WORD), # WORD wHighVersion;
('szDescription', w.CHAR * 10 ), # char szDescription[WSADESCRIPTION_LEN+1]; Null-terminated ASCII string into which the Ws2_32.dll copies a description of the Windows Sockets implementation. The text (up to 256 characters in length)
('szSystemStatus', w.CHAR * 10 ), # char szSystemStatus[WSASYS_STATUS_LEN+1]; Null-terminated ASCII string into which the WSs2_32.dll copies relevant status or configuration information.
('iMaxSockets', w.USHORT), # unsigned short iMaxSockets; Ignored for Winsock 2.0
('iMaxUdpDg', w.USHORT), # unsigned short iMaxUdpDg; Ignored for Winsock 2.0 and later
('lpVendorInfo', w.CHAR) # char FAR* lpVendorInfo; ignored for winsock v2
]
#} WSADATA, *LPWSADATA;
Я хочу использовать интерфейс сокетов, кажется, им легче управлять, чем способом vcom (я сомневаюсь, что виртуальный com-порт когда-нибудь будет работать на моем контроллере.), Но структуры winsock настолько сложны... Есть ли способ обернуть их и передать их как черные ящики. эти дескрипторы не должны работать в Python в любом случае.