Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Web сервер.

403
03 августа 2006 года
ace lighting
411 / / 05.05.2006
Есть у кого-нибудь какая-нибудь инфа, о том как на басике написать http сервер( локальный ). ну типа апач. чтобы набираешь в браузере 127.0.0.1 и попадать на оффлайн страничку? Подскажите... заранее спасибо!
15K
10 августа 2006 года
KAN
40 / / 08.08.2006
Расскажу в общих чертах:
требуется два контрола winsock
одному делаешь .listen по 80-му порту (допустим это wlisten)
из другого делаешь массив, т.е. ставишь .index=0 (а это ws1)
дальше, при поступлении соединения, проверяем не закрылись ли у нас существующие соединения, если закрылись - зачем создавать новые, принимаем на существующий сокет, иначе создаем новое соединение.
(этот код в sub wlisten_connection request)
 
Код:
For x = 1 To UBound(ws1)
 If ws1(x).State = 0 Or ws1(x).State = 8 Then
  ws1(x).Close
  ws1(x).Accept requestID
  Exit Sub
 End If
Next x
Load ws1(x)


а дальше работаешь с
 
Код:
Private Sub ws1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
ws1(index).getdata MyData
End Sub

в зависимости от того, что у тебя в MyData, следует давать соответствующий ответ.
Проще всего узнать команды http - это сделать нечто вроде прокси, и смотреть что куда отсылается, или прочитать reference :)
403
10 августа 2006 года
ace lighting
411 / / 05.05.2006
спасибо... поробую.
15K
11 августа 2006 года
KAN
40 / / 08.08.2006
ошибочка закралась :)
........
End If
Next x
Load ws1(x)
ws1(x).accept requestID
1.2K
23 августа 2006 года
PAVEL BASIC
171 / / 24.07.2006
А где взять больше инфы по этому вопросу?:eek:
15K
23 августа 2006 года
KAN
40 / / 08.08.2006
а что тебе ещё надо :)
как принимать соедмнение - написано, осталось посмотреть кто-что посылает и на соответствующие запросы давать соответствующие ответы :)
описание протокола HTTP
1.2K
23 августа 2006 года
PAVEL BASIC
171 / / 24.07.2006
Я имею ввиду из командной строки или каким-нибудь другим методом. :confused:

Не сочтите за бестактность, но нет ли у вас исходника работающего сервера.
:) :) :)
15K
23 августа 2006 года
KAN
40 / / 08.08.2006
неа, исходника нет.
а что ты собираешься из командной строки делать?
также ws1.send <data>
тебе, как серверу, при подключении надо отправить клиенту html страницу, потом последует запрос на мультимедию, отправляешь и ее.
1.2K
23 августа 2006 года
PAVEL BASIC
171 / / 24.07.2006
Я хочу чтобы когда в бразуре напечатаешь что-то типа localhost/mainbook.html то содержимое файла очутилось в броузере
282
23 августа 2006 года
Bard
481 / / 26.02.2006
[QUOTE=PAVEL BASIC]Я хочу чтобы когда в бразуре напечатаешь что-то типа localhost/mainbook.html то содержимое файла очутилось в броузере[/QUOTE]

Ну так в чем проблемы?
Создаеш в своих шарах нужные папки, кидаеш в них хтмл страницы и все готово. Потом с любого компа в сети заходиш так:

\\Твой.Ип.адрес.с\mainbook.html

В локалке ето работает, сам проверял.

Только у такого споба есть минусы, один из ных: твой <сайт> не найдет ни один поисковик :)

Но если ты хочеш хостинг за пределами твоей сети - надо заплатить не маленькие деньги хостинг провайдеру.
1.2K
27 августа 2006 года
PAVEL BASIC
171 / / 24.07.2006
[QUOTE=KAN]а что тебе ещё надо :)
как принимать соедмнение - написано, осталось посмотреть кто-что посылает и на соответствующие запросы давать соответствующие ответы :)
описание протокола HTTP[/QUOTE]

Мне нужна инфа о том как пишутся сервера:) , а то ничего не получается потому что я не могу понять какими путями сервер должен получать от браузера запросы.
15K
28 августа 2006 года
KAN
40 / / 08.08.2006
я ж уже объяснял :)
через винсокет (winsock)
их надо на форме 2, один слушает 80-порт (http)
второй-на самом деле массив, принимает соединение...
когда идёт коннект, браузер соединяется на указанный адрес по 80-му порту, который ты слушаешь, и принимаешь соединение, он(браузер) говорит тебе "кто он такой", ты ему отвечаешь "кто ты" и скидываешь "index.htm" (ну или другую запрошенную страницу), потом браузер просит скинуть картинки, музыку и т.п., что находится на запршеной странице - скидываешь и это - в принципе всё.
как принимать соединение я писал:

Цитата:
Расскажу в общих чертах:
требуется два контрола winsock
одному делаешь .listen по 80-му порту (допустим это wlisten)
из другого делаешь массив, т.е. ставишь .index=0 (а это ws1)
дальше, при поступлении соединения, проверяем не закрылись ли у нас существующие соединения, если закрылись - зачем создавать новые, принимаем на существующий сокет, иначе создаем новое соединение.
(этот код в sub wlisten_connection request)


 
Код:
For x = 1 To UBound(ws1)
 If ws1(x).State = 0 Or ws1(x).State = 8 Then
  ws1(x).Close
  ws1(x).Accept requestID
  Exit Sub
 End If
Next x
Load ws1(x)
ws1(x).accept requestId


Цитата:
а дальше работаешь с



 
Код:
Private Sub ws1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
ws1(index).getdata MyData
End Sub


Цитата:
в зависимости от того, что у тебя в MyData, следует давать соответствующий ответ.
Проще всего узнать команды http - это сделать нечто вроде прокси, и смотреть что куда отсылается.

1.2K
28 августа 2006 года
PAVEL BASIC
171 / / 24.07.2006
:o А что за переменная MyData, откуда она берёт своё значение и что это за значение.

Вы знаете очень интересно.:) ;)
282
28 августа 2006 года
Bard
481 / / 26.02.2006
[QUOTE=PAVEL BASIC]:o А что за переменная MyData, откуда она берёт своё значение и что это за значение.

Вы знаете очень интересно.:) ;)[/QUOTE]

GetData присваивает ей приходящие данные
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог