Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Виртуальные хосты (http сервер), --> как их делают 
:(
    Опции темы
_Alex
Дата 20.5.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 9.3.2007

Репутация: нет
Всего: нет



Допустим есть простой сервер ждущий на порту 80.
Принцып работы:
Код

#include <winsock2.h>

SOCKET server_socket;
struct sockaddr_in servaddr;

server_socket = socket(AF_INET, SOCK_STREAM, 0);

servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = INADDR_ANY;
servaddr.sin_port = 80;
bind(server_socket, (struct sockaddr *)&servaddr, sizeof(servaddr));
listen(server_socket, 100);

SOCKET new_fd;
struct sockaddr_in cliaddr;
new_fd = accept(server_socket, (struct sockaddr *)&cliaddr, (int)sizeof(struct sockaddr_in));

char buf[10000];
int bytesRecv;
bytesRecv = recv(new_fd, buf, 10000, 0);
send(new_fd, buf, bytesRecv, 0);
//...

К такой программе можно обратиться "http://localhost/"

Вопрос: Как сделать виртуальные хосты? http://sub.localhost/

З.Ы.
Исходники Apache мне разобрать не удалось.


PM MAIL   Вверх
ptr
Дата 21.5.2007, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



На твой сервер приходит запрос, например GET, в нем поле Host. И уже из этого поля сервер определяет на какой хост был запрос.


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
_Alex
Дата 21.5.2007, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 9.3.2007

Репутация: нет
Всего: нет



Цитата(ptr @  21.5.2007,  08:15 Найти цитируемый пост)
На твой сервер приходит запрос, например GET, в нем поле Host.

Да, это так, но у меня проблема была в том что запрос не приходил...

Оказалось что нужно было добавить "127.0.0.1     sub.localhost" 
в файл "C:\WINDOWS\system32\drivers\etc\hosts"

И ещё вопрос, где нужно добавить такую запись в UNIX подобных ОС?




PM MAIL   Вверх
ptr
Дата 21.5.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 661
Регистрация: 31.5.2006
Где: Новосибирск

Репутация: 9
Всего: 14



А как ты хотел чтобы браузер узнал IP хоста? Либо из DNS, либо из hosts.
Код

/etc/hosts


Это сообщение отредактировал(а) ptr - 21.5.2007, 12:51


--------------------
Единственный способ определить границы возможного - это выйти за эти границы, в невозможное.
Артур Кларк.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0539 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.