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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кросплатформенное ПО работающее с TCP 
:(
    Опции темы
Mal Hack
Дата 1.7.2008, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Доброе время суток. Стоит задача сделать программу, которая отсылает по TCP команду устройству (само устройство работает и к нашей задачи отношения не имеет) и читает ответ.
Почитал в сети про наличие socket API и Windows Socket API. Между ними соответственно есть отличия.
Вопрос собственно такой, а имеется ли возможность стандартными средствами языка С++ реализовать необходимое взаимодействие?
Еще интересует вопрос возможности применения createHandle для TCP. Хотя последнее мне кажется маловероятным.

Спасибо.
PM ICQ   Вверх
jonie
Дата 1.7.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



стандартными 100% нет. С++ ничего не слышал даже про сеть или сокеты.
есть много библиотек для работы с сокетами на более абстрактном уровне, нежели сокеты.
например ACE Framework (говорят крутая, тут чет писали про нее), boost ... вот их и используйте...

если задача разовая и не сложная, то можно свою обертку над сокетами быстро соорудить (велосипед).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
MAKCim
Дата 1.7.2008, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Mal Hack, 
openSSL и абстракция I/O BIO
+ получите возможность использования SSL/TLS

Добавлено @ 23:24
Код

char buffer[0x10000] = "GET /\r\n"
...
BIO * bio = BIO_new_connect("google.com:80");
BIO_do_connect(bio);
BIO_write(bio, buffer, strlen(buffer));
buffer[BIO_read(bio, buffer, 0x10000)] = '\0';
puts(buffer);


Это сообщение отредактировал(а) MAKCim - 1.7.2008, 23:40


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

PM MAIL   Вверх
Mal Hack
Дата 1.7.2008, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



MAKCim, а чуть подробнее можно? =)
есил openSSL  я еще хоть как-то представляю, то вот это:
Цитата(MAKCim @  1.7.2008,  23:15 Найти цитируемый пост)
абстракция I/O BIO

никак..
PM ICQ   Вверх
MAKCim
Дата 1.7.2008, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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





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

PM MAIL   Вверх
DRUID3
Дата 2.7.2008, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 Как вариант - писать на Qt. Я бы именно так и поступил.


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
Lazin
Дата 2.7.2008, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



asio library, поддержка SSL/TLS + по многим отзывам - одна из самых качественных кросс платформенных библиотек...
PM MAIL Skype GTalk   Вверх
MAKCim
Дата 2.7.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(DRUID3 @  2.7.2008,  06:39 Найти цитируемый пост)
Как вариант - писать на Qt. Я бы именно так и поступил. 

ну и зря  smile

Добавлено через 2 минуты и 37 секунд
Цитата(Lazin @  2.7.2008,  08:48 Найти цитируемый пост)
поддержка SSL/TLS

через openSSL  smile 

openSSL быстрее


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

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


Опытный
**


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

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



Цитата(MAKCim @  2.7.2008,  09:12 Найти цитируемый пост)
ну и зря

Обоснуйте!


--------------------
Every time if you use Linux, you are joined to the communism...
практика - критерий истины ... отделенной от нас пропастью субъективного восприятия...
PM MAIL WWW Skype   Вверх
Mal Hack
Дата 2.7.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Qt отменяется, т.к. он дает лишь поверхностный доступ к сокету соединения, что плохо, т.к. надо контролировать на уровне ниже...
PM ICQ   Вверх
MAKCim
Дата 2.7.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(DRUID3 @  2.7.2008,  15:05 Найти цитируемый пост)
Обоснуйте! 

а чего обосновывать то?  smile 
в первую очередь QT - это графическая библиотека
использовать ее ради сокетов все равно что использовать танк для поездок на работу


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

PM MAIL   Вверх
Mal Hack
Дата 6.7.2008, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



MAKCim, как эту заразу подружить с VS.NET?
Да и в линуксе, какой доп рараемтр нужно указать чтоб он увидел openssl/bio.h
В студии сначала компили, давал ему на съедение libeay32.lib. Потом перестал. И ни в какую..
Пишет мол libeay32.dll build with no debug information....
PM ICQ   Вверх
jonie
Дата 6.7.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

Пишет мол libeay32.dll build with no debug information....
ну и что? библиотека просто скомпилирована не в отладочной версии. это нормально (пи условии уверенности что она не глюченная).

остальной текст непонял.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Mal Hack
Дата 6.7.2008, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(jonie @  6.7.2008,  22:46 Найти цитируемый пост)
ну и что? библиотека просто скомпилирована не в отладочной версии. это нормально (пи условии уверенности что она не глюченная).

Я не знаю, что тут нормального, но линковщик собираеть ее с приложением - отказывается.

Цитата(jonie @  6.7.2008,  22:46 Найти цитируемый пост)
остальной текст непонял. 

Глобально зачача - заставить студию и G++ (линукс) компилить мою программу с либой OpenSSL. Как я не пытался (в винде только, правда), у меня ничего не вышло. Точнее перестало выходить... 
PM ICQ   Вверх
MAKCim
Дата 7.7.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Mal Hack @  6.7.2008,  18:39 Найти цитируемый пост)
Да и в линуксе, какой доп рараемтр нужно указать чтоб он увидел openssl/bio.h

как устанавливал OpenSSL?
если из исходников, то какой --prefix указывал?
по-умолчанию он /usr/local/ssl
поэтому инклуды будут лежать в /usr/local/ssl/include/openssl
иначе в $DIR/include/openssl, где $DIR - ключ в --prefix

если не из исходников, то возможно не был установлен пакет *openssl-devel
или по-умолчанию инклуды были записаны в каталог, который не видит компилятор
попробуй через
Код

# find /usr -type d -name "openssl"

их поискать

как найдешь, используй ключ -I<путь к openssl> при компиляции

 
Цитата(Mal Hack @  6.7.2008,  18:39 Найти цитируемый пост)
Пишет мол libeay32.dll build with no debug information....

релиз компилируешь или дебаг-версию?


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

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


 




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


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

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