Как определить структуры 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 в любом случае.

0 ответов

Другие вопросы по тегам