2013-05-30 2 views
2

Мне нужно «отключить» UDP-сокет в python (и не закрывать его!).Отключить UDP-сокет в python?

Можно ли сделать эквивалент:

int disconnect_udp_sock(int fd) 
{ 
    struct sockaddr_in sin;   

    memset((char *)&sin, 0, sizeof(sin)); 
    sin.sin_family = AF_UNSPEC; 
    return (connect(fd, (struct sockaddr *)&sin, sizeof(sin))); 
} 

взятого из here в питоне без взаимодействия функции?

ответ

1

Если посмотреть на socketmodule.c в источниках Python 2.7, это не представляется возможным. Вам действительно нужно определить и вызвать функцию C выше.

+0

Спасибо за ответ, хотя я надеялся на какой-то аккуратный взлом :-) Я буду придерживаться C на данный момент. –

+1

Примечание: http://cffi.readthedocs.org/: 'import cffi; FFI = cffi.FFI(); ffi.cdef ("int disconnect_udp_sock (int fd);"); lib = ffi.verify (".. вставьте код функции C выше с парой, требуемой #includes ..") '. Затем вы можете использовать 'lib.disconnect_udp_sock()'. –

Смежные вопросы