Можно ли разделить сокет между вызовами Winsock 2 P / Invoke и C # System.Net.Sockets? - PullRequest
0 голосов
/ 26 августа 2011

Я хотел бы иметь возможность создать сокет в C # и перенаправить его в функцию C, которая ожидает сокет winsock 2 (или наоборот), позволить библиотеке C использовать этот сокет для связи, и как только это будет сделано, используйтеснова сокет в управляемом контексте C # для выполнения реальной работы.

Библиотека C - это реализация win32 kerberos, которая предполагает использование winsock socket / fd.Я хотел бы иметь возможность использовать функцию krb5_recvauth() для выполнения всех аутентификаций, но не нужно писать весь сервер, используя упакованные вызовы win32.

Использование all-C или all-C ++ на сервере не вариант;C # неизбежен по несвязанным причинам.Использование альтернативной реализации kerberos является опцией, но она должна быть в состоянии общаться с библиотекой vanilla C kerberos.Использование двух портов на сервере, один для ограничения и один для C # является опцией, но это похоже на взлом и при этом трудно защищенный.

1 Ответ

0 голосов
/ 26 августа 2011

Свойство Socket.Handle должно представлять дескриптор сокета уровня Winsock.Попробуйте передать этот указатель на ваши вызовы P / Invoke.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...