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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите девушке :girl_crazy 
V
    Опции темы
KVA
Дата 18.11.2009, 17:53 (ссылка)  | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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




На компьютере есть шаблоны, которые заполняются из БД при заданных критериях. Нужно, чтобы клиенты через инет(в том числе и КПК) могли выбрать себе шаблон, ввести критерии  и получить готовый документ. Шаблоны реализованы, больше нет ничего. Язык Visual С++, нестандартные библиотеки использовать нельзя. Я с сетями раньше не работала, поэтому представления об этом на уровне учебы. Не знаю даже с чего начать  smile .  Плиз, программеры, помогите, разжуйте девушке  smile

Добавлено @ 17:59
Надеюся мне не придется самой себе отвечать.... smile 

Это сообщение отредактировал(а) KVA - 23.11.2009, 14:26
PM MAIL   Вверх
niXman
Дата 18.11.2009, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Чем владеешь? Какой уровень знаний?


Это сообщение отредактировал(а) niXman - 18.11.2009, 19:09
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
KVA
Дата 19.11.2009, 05:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



В принципе смогу разобраться во всем, главное указать план действий, что рыскать в инете и что за чем делать. На уровне прикладных программ всё ОК, а вот с сетями не сталкивалась. Спасибо за надежду на помощь smile 
PM MAIL   Вверх
KVA
Дата 19.11.2009, 06:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И ещё, нужна платформонезависимость, т.е. ISAPI-скрипт  не подходит? 
PM MAIL   Вверх
Олег2005
Дата 19.11.2009, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

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



Цитата(KVA @  19.11.2009,  05:28 Найти цитируемый пост)
ISAPI-скрипт  не подходит?  

ISAPI - только на стороне майкрософтовского сервера.
Кроссплатформенность не получится....
По сетям.....поищите Криса Касперского - самоучитель игры на Winsock

Это сообщение отредактировал(а) Олег2005 - 19.11.2009, 12:28
PM MAIL WWW MSN   Вверх
KVA
Дата 19.11.2009, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Итак, я же работаю smile . Задача облегчается. Надо принять данные с клиента и отправить ему PDF файл. Надо использовать CGI, Visual C++. 

Можно каркас кода набацать, а то боюсь, первая работа  smile 
 
Сервер- это программа. Где она должна лежать в реальном режиме исполнения? А то в гуге он то appache, то локально на компе, то ещё где-то smile 

Касперского я скачала, почитаю завтра smile 

PM MAIL   Вверх
andrew_121
Дата 19.11.2009, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Цитата(KVA @  19.11.2009,  20:36 Найти цитируемый пост)
Надо использовать CGI, Visual C++

А сторонние библиотеки использовать нельзя? Что, на сокетах писать будешь? И задачу как-то более детально сформулируй.

Цитата(KVA @  19.11.2009,  20:36 Найти цитируемый пост)
Сервер- это программа. Где она должна лежать в реальном режиме исполнения?

Сервером, может быть и клиентская программа. Тут дело в том, что "сервер" должен выполнять. Может оказаться так, что сервер и клиент это одно и тоже, с разницей в том, кто инициирует сеанс.

В общем, объясняй.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Олег2005
Дата 19.11.2009, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

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



Цитата(KVA @  19.11.2009,  19:36 Найти цитируемый пост)
Надо принять данные с клиента и отправить ему PDF файл. Надо 

Итак, клиент где-то там.....в Африке smile 
Какой запрос он отправляет? Т.е. формат запроса.
Далее - насчет CGI
Почитайте в файлике.
Думаю, что вы вполне можете обойтись и без CGI
Принимаете запрос на своем TCP-сервере - который на вашей машине будет!!!
Расшифровываете.
Средствами С++ залазите в свою файловую систему и ищете нужный файл.
Запихиваете его в буфер передачи функции send и отсылаете клиенту.
Все......

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  CGIinterfaceRu.doc 97,00 Kb
PM MAIL WWW MSN   Вверх
andrew_121
Дата 19.11.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Цитата(Олег2005 @  19.11.2009,  22:42 Найти цитируемый пост)
Принимаете запрос на своем TCP-сервере - который на вашей машине будет!!!
Расшифровываете.
Средствами С++ залазите в свою файловую систему и ищете нужный файл.
Запихиваете его в буфер передачи функции send и отсылаете клиенту.
Все...... 

Ух как у тебя все просто smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Олег2005
Дата 20.11.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

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



Цитата(andrew_121 @  19.11.2009,  22:17 Найти цитируемый пост)
Ух как у тебя все просто smile  

Да вроде проще некуда.......
PM MAIL WWW MSN   Вверх
MAKCim
Дата 20.11.2009, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



стоит наверное уточнить, что раз нужно юзать cgi, то протокол, видимо, http[s]


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

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


Шустрый
*


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

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



Прочитала всё, что дал Олег2005.  Олег2005,у меня есть лично к вам вопросы, ну если другие ответят  smile .
1. <winsock2.h> автоматом подключает <windows.h>, значит ли это,что <winsock2.h> только под Винду и платформонезависимости не будет?
2. По отдельности поняла и сокеты, и CGI, а вот вместе как использовать smile 
3. 
Цитата
Думаю, что вы вполне можете обойтись и без CGI

Неа smile ! При первом запросе мы запрашиваем Вид документа, а при втором в зависимости от выбора запрашиваем критерии его формирования. Для разных документов разные критерии и список видов обновляется и берется из БД, данные для документа тоже из БД.

4. из Присоединённый файл  CGIinterfaceRu.doc 97,00 Kb 
Цитата

Клиентская часть
Для создания клиентской части необходимо создать HTML-документ, в котором реализован интерфейс с пользователем. В языке HTML это возможно посредством форм. 
Серверная часть
Серверная часть состоит из исполняемого модуля, решающего основные задачи обработки данных поступающих от клиентской части, формирования ответа в формате HTML, и т.д. Такой модуль называется cgi-модулем. 

и чуть позже
Цитата

СGI - модуль выводит информацию в стандартный выходной поток. Этот вывод может представлять собой или документ, сгенерированный cgi-модулем, или инструкцию серверу, где получить необходимый документ.

Так сервер это cgi-модуль, или его всё-таки надо реализовывать, или это стандартный HTTP? Взаимодействие клиент-сервер в сокетах очевидно. А вот cgi smile 

5. из Присоединённый файл  CGIinterfaceRu.doc 97,00 Kb 
Цитата

Ниже приведен исходный текст программы post-query. 
.....

Это и есть основной cgi-модуль, но вот в примере нет ни одного упоминания post-query(), а есть main(). Я понимаю, что я чё-то не догнала, а вот чё не пойму.

6. Я своё ТЗ представляю так. 
Пользователь в Африке зашел в интернет кафе.
Вышел на сайт x.ru
Авторизовался и нажал на кнопочку выбрать.
Выбрал Док1 и нажал на кнопочку Формировать.
Получил запрос на критерии для Док1 
Заполнил критерии и нажал Далее
Получил Документ pdf
А вот как начальник не знаю, он спросил как я технически это представляю smile 
PM MAIL   Вверх
Олег2005
Дата 21.11.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

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



[QUOTE=KVA,21.11.2009,  07:13]Прочитала всё, что дал Олег2005.  Олег2005,у меня есть лично к вам вопросы, ну если другие ответят  smile .
1. <winsock2.h> автоматом подключает <windows.h>, значит ли это,что <winsock2.h> только под Винду и платформонезависимости не будет?

Да, будет только под win-платформу

2. По отдельности поняла и сокеты, и CGI, а вот вместе как использовать

Принципиально web-сервер - лентяй, и не умеет ничего, кроме как принять HTTP-запрос, расшифровать его и согласно расшифровке передать из своего каталога все затребованные файлы (html-страничку - и затем все картинки), после чего соединение может быть разорвано. Но если надо выдать документ, которого не существует в файловой системе - и который надо сформировать динамически нка лету - это и есть типичная задача CGI-модуля. Это может делать в принципе и сам веб-сервер - но тогда он будет занят обработкой - что не есть хорошо. Для таких случаев CGI и предназначен.
В вашем случае нет никакой необходимости в создании веб-сервера - абсолютно никакой, потому что протокол общения у вас - не HTTP - а ваш собственный 

3. 
Цитата
Думаю, что вы вполне можете обойтись и без CGI

Неа smile ! При первом запросе мы запрашиваем Вид документа, а при втором в зависимости от выбора запрашиваем критерии его формирования. Для разных документов разные критерии и список видов обновляется и берется из БД, данные для документа тоже из БД.

Вот то, что вы написали - и есть протокол общения, и никаким вебом здесь не пахнет. Почему?
Как я написал, все гораздо проще. У вас будет никак не веб-сервер - а ваш собственный сервер. Его задача:
принять коннект (запрос от клиента) - и скажем ответить, что все ок, готов дальше работать. Второй прием информации - это прием критериев формирования. Приняли критерии от клиента, и начали работу по формированию документа - связываетесь с БД, все делаете как надо - и передаете клиенту. и разрываете соединение по данному сокету.
Всю обработку по клиенту выделяете в отдельный поток - после accept()  делаете CreateThread(), и в этом потоке выполняете всю описанную выше работу. Поток потом убиваете.

4. Так сервер это cgi-модуль, или его всё-таки надо реализовывать, или это стандартный HTTP? Взаимодействие клиент-сервер в сокетах очевидно. А вот cgi 

Состав веб-сервера 
1. TCP-сервер
2. HTTP-сервер - парсер для запросов HTTP-запросов (GET, POST) от клиента, формирование HTTP-ответов и всяко разно - вам это НЕ НАДО!!!
3. СGI-модули - для РАСШИРЕНИЯ функциональных возможностей веб-сервера.

Но все это - ДЛЯ ВЕБА!!!! У вас веба нет как класса!


Это сообщение отредактировал(а) Олег2005 - 21.11.2009, 10:51
PM MAIL WWW MSN   Вверх
MAKCim
Дата 21.11.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Олег2005, 
везде, где можно следует применять http
унификация вещь серьезная
если понадобится вдруг шифрование, то https как раз будет кстати, стоит ли говорить о том, что существует куча либ, которые уже за нас делают лювиную долю работы, к примеру CURL+SSL ;)

Добавлено через 1 минуту и 7 секунд
Цитата(Олег2005 @  21.11.2009,  10:49 Найти цитируемый пост)
Всю обработку по клиенту выделяете в отдельный поток - после accept()  делаете CreateThread(), и в этом потоке выполняете всю описанную выше работу. Поток потом убиваете.

самый ущербный и непроизводительный способ
хотя бы уж тогда pre-fork использовать...

Добавлено через 10 минут и 25 секунд
Цитата(KVA @  21.11.2009,  08:13 Найти цитируемый пост)
Взаимодействие клиент-сервер в сокетах очевидно. А вот cgi 

вот простейший CGI-модуль на C
Код

int main()
{
    printf("HTTP/1.1 200 OK\r\nConnection: close\r\nContent-Type: text/plain\r\nContent-Length: 13\r\n\r\nHello, world!");
    return 0;
}



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
KVA
Дата 21.11.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Олег2005, большое спасибо, наконец-то я поняла про сервера  smile .

Цитата
У вас будет никак не веб-сервер - а ваш собственный сервер. Его задача:
принять коннект (запрос от клиента) - и скажем ответить, что все ок, готов дальше работать. Второй прием информации - это прием критериев формирования. Приняли критерии от клиента, и начали работу по формированию документа - связываетесь с БД, все делаете как надо - и передаете клиенту. и разрываете соединение по данному сокету

А как же платформонезависимость? Какая нужна библиотека по сокетам?

MAKCim, вы, как я поняла, за cgi?



Это сообщение отредактировал(а) KVA - 21.11.2009, 13:21
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




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


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

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