2011-03-31 54 views
0

是否有任何方法將python套接字對象轉換爲空指針。我正在使用ctypes,我已經嘗試使用轉換和Python的轉換功能。PYTHON插座和結構

我也在使用DLL,並且有一個函數將結構作爲它的參數。 但是,當我將結構傳遞給函數時,我將無效參數視爲錯誤。 使用Python獲取C類型參數的C上創建的C DLL有什麼缺點嗎?

+0

[Socket編程]的可能重複(http://stackoverflow.com/questions/5547895/socket-programming) – ThiefMaster 2011-04-05 06:27:26

回答

0

沒有理由將套接字轉換爲指針。您可以使用socket.fileno()來獲取應該在C代碼中可用的套接字的文件描述符。

如果你的庫需要一個指針,你可能需要用ctypes結構來包裝它 - 但不知道我們無法知道的細節。

+0

該庫實際上接受指向void的指針。在C中,取消引用指針很容易。 C函數是 - > long UNILIB_CALL UL_cbOpen(void ** psocket,char * ipAddress,unsigned int port,int connectionTimeout,int sendTimeout,int recvTimeout)。 UNILIB_CALL是__stdcall。這是一個回調函數。 Python代碼在這裏 - > libc = WinDLL(「Unilib.dll」); ulopen = WINFUNCTYPE(c_long,POINTER(c_void_p),c_char_p,c_uint,c_int,c_int,c_int);函數聲明是這個UL_cbOpen(psocket,ipAddress,port,connectionTimeout,sendTimeout,recvTimeout): – 2011-04-05 05:53:50