снабдите возврат сокетом 'Никакой такой файл или каталог"

Мой предпочтительный язык сценариев был бы Lua в эти дни. Это является маленьким, быстро, чистый, полностью зарегистрированный, хорошо поддерживаемый, имеет великое сообщество , это используется многими крупными компаниями в промышленность (Adobe, Снежная буря, Игры EA), определенно стоящий попытки.

Для использования его с языками.NET проект LuaInterface обеспечит все, в чем Вы нуждаетесь.

5
задан ant2009 10 December 2009 в 16:43
поделиться

2 ответа

Основная проблема заключается в том, что у вас неправильная проверка на наличие ошибки в socket (). socket () вернет -1 в случае ошибки, а не 0 в случае успеха. Вы можете получить хорошее значение сокета (2, 3 и т. Д.) И рассматривать его как ошибку.

Существует также вторая проблема в том, как вы заключаете свой код в скобки. Когда вы пишете:

if (sockfd = socket(add_res->ai_family, add_res->ai_socktype, add_res->ai_protocol) != 0)

Это обрабатывается как:

if (sockfd = (socket(add_res->ai_family, add_res->ai_socktype, add_res->ai_protocol) != 0))

Таким образом, sockfd не будет присвоено возвращаемое значение сокета, а будет присвоено значение сравнения его с 0. Исправляя обе проблемы, вы должны написать:

if ((sockfd = socket(add_res->ai_family, add_res->ai_socktype, add_res->ai_protocol)) == -1)
12
ответ дан 13 December 2019 в 05:36
поделиться

Я считаю, что вам следует указать тип сокета, который вам нужен. Когда вы говорите:

add_info.ai_family = AF_UNSPEC;

, вы должны сказать:

add_info.ai_family = AF_INET;
0
ответ дан 13 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: