Разработка программ ...

Здесь обсуждаются различные программы, компьютеры, ноутбуки, операционные системы, связь, компьютерные сети, модемы, смартфоны, сотовые телефоны, цифровое и IP-телевидение и т.д.

Модераторы: Aneta, ru

Аватара пользователя
Garipov72
webmaster
Сообщения: 2159
Зарегистрирован: 20 ноя 2009 16:16
Откуда: Москва

Re: Разработка программ ...

Сообщение Garipov72 » 06 апр 2010 11:56

Слушай между делом подскажи, как сделать вывод в одной строке:

Код: Выделить всё

cout << x;
cout << "\n";
Там где правила игры не позволяют выиграть, английские джентльмены меняют правила @ Гарольд Джозеф Ласки

Аватара пользователя
dooh
Сообщения: 331
Зарегистрирован: 27 янв 2010 13:33
Откуда: Тобольск
Контактная информация:

Re: Разработка программ ...

Сообщение dooh » 06 апр 2010 12:52

cout << x <<"текст"; так вродибы там ограничений по количеству стрелок нету ...

Аватара пользователя
Garipov72
webmaster
Сообщения: 2159
Зарегистрирован: 20 ноя 2009 16:16
Откуда: Москва

Re: Разработка программ ...

Сообщение Garipov72 » 06 апр 2010 14:50

:P спасибо, а то начал вспоминать с азов, а как вывод в одной строке сделать забыл(((
Там где правила игры не позволяют выиграть, английские джентльмены меняют правила @ Гарольд Джозеф Ласки

Аватара пользователя
Garipov72
webmaster
Сообщения: 2159
Зарегистрирован: 20 ноя 2009 16:16
Откуда: Москва

Re: Разработка программ ...

Сообщение Garipov72 » 07 апр 2010 08:25

Вспомнил почему в прошлый раз перестал программировать на Visual Studio, у него консоль муторно создавать :roll: , проще на Dev-C++ написать.
Там где правила игры не позволяют выиграть, английские джентльмены меняют правила @ Гарольд Джозеф Ласки

Аватара пользователя
dooh
Сообщения: 331
Зарегистрирован: 27 янв 2010 13:33
Откуда: Тобольск
Контактная информация:

Re: Разработка программ ...

Сообщение dooh » 08 апр 2010 19:33

Ну вот вобщем разобрался как проект на KDevelop создать, как библиотеку OpenGL подключить, простенькую программку уже писать начал ... правда это все под линуксом ... такие вот дела ...

Аватара пользователя
Garipov72
webmaster
Сообщения: 2159
Зарегистрирован: 20 ноя 2009 16:16
Откуда: Москва

Re: Разработка программ ...

Сообщение Garipov72 » 10 апр 2010 16:27

Слушай, а как в С++ получить данные с инета?
Там где правила игры не позволяют выиграть, английские джентльмены меняют правила @ Гарольд Джозеф Ласки

Аватара пользователя
dooh
Сообщения: 331
Зарегистрирован: 27 янв 2010 13:33
Откуда: Тобольск
Контактная информация:

Re: Разработка программ ...

Сообщение dooh » 13 апр 2010 13:41

Ты имеешь в виду подключение к другому компу или инфу о структуре сети ?

Аватара пользователя
Garipov72
webmaster
Сообщения: 2159
Зарегистрирован: 20 ноя 2009 16:16
Откуда: Москва

Re: Разработка программ ...

Сообщение Garipov72 » 13 апр 2010 15:25

Ну скажем PSS текст загрузить или html текст, или картинку с нета, да что угодно лиж бы оно потом в переменной в программе было. На сколько я помню надо порт открывать и т.д. только я забыл технологию. :roll:
Там где правила игры не позволяют выиграть, английские джентльмены меняют правила @ Гарольд Джозеф Ласки

Аватара пользователя
ru
забанен
Сообщения: 6945
Зарегистрирован: 23 июн 2006 08:42

Re: Разработка программ ...

Сообщение ru » 13 апр 2010 15:29

Garipov72 писал(а):Ну скажем PSS текст загрузить или html текст, или картинку с нета, да что угодно лиж бы оно потом в переменной в программе было. На сколько я помню надо порт открывать и т.д. только я забыл технологию. :roll:
Эта технология называется создание исходящих сокетов.
Не моё, вытащил с интернета:
Создание клиента
Программа клиента делается аналогично до момента создания сокетов. Cоздайте сокет так как описано выше, но не пользуйтесь командой bind:

Код: Выделить всё

SOCKADDR_IN anAddr; anAddr.sin_family = AF_INET; anAddr.sin_port = htons(80); anAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
Заполнение структуры производится почти также но нeжно указать теперь IP адрес сервера ( пример 127.0.0.1 ) .Дальше сразу можно соединятся:

Код: Выделить всё

connect(s, (struct sockaddr *)&anAddr, sizeof(struct sockaddr));
Для обращения программы-клиента к серверу с запросом на установление логической соединения используется системный вызов connect, имеющий следующий вид

Код: Выделить всё

int connect (s, addr, addrlen) int s; struct sockaddr_in *addr; int addrlen;
Аргумент s задает дескриптор socket'а, через который программа обращается к серверу с запросом на соединение. Socket должен быть предварительно создан системным вызовом socketи обеспечен адресом с помощью системного вызова bind.

Аргумент addr должен указывать на структуру данных, содержащую адрес, приписанный socket'у программы-сервера, к которой делается запрос на соединение. Для сетей TCP/IP такой структурой является sockaddr_in. Для формирования значений полей структуры sockaddr_in удобно использовать функцию gethostbyname.

Аргумент addrlen задает размер (в байтах) структуры данных, указываемой аргументом addr.

Для того, чтобы запрос на соединение был успешным, необходимо, по крайней мере, чтобы программа-сервер выполнила к этому моменту системный вызов listen для socket'а с указанным адресом.

При успешном выполнении запроса системный вызов connect возвращает 0, в противном случае - "-1" (устанавливая код причины неуспеха в глобальной переменной errno).

Примечание. Если к моменту выполнения connect используемый им socket не был привязан к адресу посредством bind ,то такая привязка будет выполнена автоматически.

Примечание. В режиме взаимодействия без установления соединения необходимости в выполнении системного вызова connect нет. Однако, его выполнение в таком режиме не является ошибкой - просто меняется смысл выполняемых при этом действий: устанавливается адрес "по умолчанию" для всех последующих посылок дейтаграмм.
Вот наконец установлена долгожданная связь c сервером( не забывайте проверять ошибки). Дальше воспользуемся функциями send и recv по своему усмотрению.
3. Приложение

Для получения адреса узла сети TCP/IP по его символическому имени используется библиотечная функция

Код: Выделить всё

struct hostent *gethostbyname (name) char *name;
Аргумент name задает адрес последовательности литер, образующих символическое имя узла сети.

При успешном завершении функция возвращает указатель на структуру hostent, определенную в include-файле netdb.h и имеющую следующий вид

Код: Выделить всё

struct hostent { char *h_name; char **h_aliases; int h_addrtype; int h_lenght; char *h_addr; };
Поле h_name указывает на официальное (основное) имя узла.

Поле h_aliases указывает на список дополнительных имен узла (синонимов), если они есть.

Поле h_addrtype содержит идентификатор используемого набора протоколов, для сетей TCP/IP это поле будет иметь значение AF_INET.

Поле h_lenght содержит длину адреса узла.

Поле h_addr указывает на область памяти, содержащую адрес узла в том виде, в котором его используют системные вызовы и функции socket-интерфейса.

Для "экстренного" закрытия связи с партнером (путем "сброса" еще не переданных данных) используется системный вызов shutdown, выполняемый перед close и имеющий следующий вид

Код: Выделить всё

int shutdown (s, how) int s; int how;
Аргумент s задает дескриптор ранее созданного socket'а.

Аргумент how задает действия, выполняемые при очистке системных буферов socket'а:

* 0 - сбросить и далее не принимать данные для чтения из socket'а;
* 1 - сбросить и далее не отправлять данные для посылки через socket;
* 2 - сбросить все данные, передаваемые через socket в любом направлении.

Аватара пользователя
Garipov72
webmaster
Сообщения: 2159
Зарегистрирован: 20 ноя 2009 16:16
Откуда: Москва

Re: Разработка программ ...

Сообщение Garipov72 » 13 апр 2010 16:50

:D вечером попробую. Спасибо ru
Там где правила игры не позволяют выиграть, английские джентльмены меняют правила @ Гарольд Джозеф Ласки

Аватара пользователя
dooh
Сообщения: 331
Зарегистрирован: 27 янв 2010 13:33
Откуда: Тобольск
Контактная информация:

Re: Разработка программ ...

Сообщение dooh » 13 апр 2010 17:49

А какже процес стягивания самого файла ? там же ответ надо будет отрабатывать ...

Аватара пользователя
dooh
Сообщения: 331
Зарегистрирован: 27 янв 2010 13:33
Откуда: Тобольск
Контактная информация:

Re: Разработка программ ...

Сообщение dooh » 13 апр 2010 17:50

Кстати в принципе могу помочь , написать класик который будет файл забирать с http сервера ...

Аватара пользователя
Garipov72
webmaster
Сообщения: 2159
Зарегистрирован: 20 ноя 2009 16:16
Откуда: Москва

Re: Разработка программ ...

Сообщение Garipov72 » 13 апр 2010 20:59

Мне достаточно его просто поместить в переменную (я имею ввиду текст html). Хотя было бы интересно забрать файлы с инета.
Там где правила игры не позволяют выиграть, английские джентльмены меняют правила @ Гарольд Джозеф Ласки

Аватара пользователя
dooh
Сообщения: 331
Зарегистрирован: 27 янв 2010 13:33
Откуда: Тобольск
Контактная информация:

Re: Разработка программ ...

Сообщение dooh » 14 апр 2010 10:48

Я это и имел в виду ...
Garipov72 писал(а):Мне достаточно его просто поместить в переменную (я имею ввиду текст html).

...
Garipov72 писал(а): Хотя было бы интересно забрать файлы с инета.
Потому как когда ты открываешь соединение на сервер HTTP то команда GET имеет как параметр имя файла и серверу всеравно какого типа этот файл ... он вернет блок данных в котором и будет тот файл который ты запрашивал ...

Аватара пользователя
dooh
Сообщения: 331
Зарегистрирован: 27 янв 2010 13:33
Откуда: Тобольск
Контактная информация:

Re: Разработка программ ...

Сообщение dooh » 14 апр 2010 10:52

Еслибы еще найти как можно написать обертку плагина для FireFox :) а то такая идейка посетила сделать плагинчик который бы 3D сценку отрисовывал ... :)

Ответить