Вот прочитал про работу сокетов, так вот в одном из исходников увидел, что серверное приложение создает две переменные:
struct sockaddr_in ss, cs — т.е. для сервера и для клиента, и когда сервер готовится принять запрос от клиента то выполняет
следующее:
len = sizeof(c);
tc = accept(s, (struct sockaddr *)&cs, &cs);
т.е. передает в accept структуру клиента и заполняет ее
а вот в исходниках документации фряхи, я увидел что они используют ту же самую структуру, что для серевера:
b = sizeof(ss);
c = accept(s, (struct sockaddr *)&ss, &b);
Так вот хотелось бы узнать, правильны боа варианта, или где-то ошибка?
И еще, плиз объясните работу этого кода:
DWORD ret = 0;
struct hostent * hp = gethostbyname(host); // я так понял в поле h_name = должен возвратиться сетевой адрес (или IP)?
if (!hp) ret = inet_addr(host); // эта строка сработает если предыдущая не удалась или нет? как понять?
if ((!hp)&&(ret == INADDR_NONE)) return 0; // это если ни gethostbyname(host) ни inet_addr ничиго не вернули правильно?
if (hp != NULL) memcpy((void*)&ret, hp->h_addr,hp->h_length); // а тут копирование происходит если gethostbyname(host) сработало, и в ret копируется сетевой адрес или нет, т.е. ret потом надо делать htonl(ret) прально?
return ret;
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
гугль://UNIX\ sockets\ guide
мля, если ты читал пост, то я сказал что читал описание сокетов, че какой… ты просто счетчик постов накручиваешь что-ли
Не понял смысла топика, кто мешает скомпилять выложенный код и посмотреть как он работает? Я могу тебе рассказать как он будет работать, но мне лень. Попробуй сам.