2013-10-26 2 views

ответ

3

Существует конструктор с пометкой «использовать существующую ручку сокета», которая принимает socket_t. Вы можете использовать int для socket_t (socket_t - это перечисление на основе int в системах Unix).

// it requires an address family but i don't think it matters much 
    auto socket = new Socket(cast(socket_t) 0, AddressFamily.INET); 

Это поможет вам построить, хотя затем использовать его результаты в «гнезда на не-сокетов» ошибки, потому что двойки Торцевые звонки отправить() и RECV(), а что пишут() и читать(), поэтому я не уверен, как на самом деле сделать это полезным ...

+0

Ну, это сработало для меня! Мое приложение запускается, поэтому стандартный поток ввода - это сокет. На самом деле не думал, что socket_t будет файловым дескриптором. –

+1

А, конечно, довольно круто. Кстати, если вы хотите пойти другим путем, существует метод Socket.handle(), который возвращает socket_t. В некоторых случаях он будет неактуально применяться к int, но если вы не можете явно его использовать, а затем использовать на нем обычные файловые функции unix. –

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