» с++ и с # с++ и с #. . . Блог программистов


Блог программистов






201017 Апр

Шифровка данных заменой

Здравствуйте, читатели блога программистов, сегодня я расскажу вам о недавно придуманном мною алгоритме шифрования данных при использовании, которого зашифрованные данные каждый раз получаются разными, при этом они никак не зависят от текущей даты, времени и других факторов. Изложенный в данной статье алгоритм идеально подходит для создания конфиденциальных каналов связи, при использовании которых критически важно, чтобы передаваемую информацию не мог узнать злоумышленник. Предупреждаю сразу: изложенный в данной статье алгоритм не претендует на звание самого лучшего, это всего лишь очередная вариация на тему шифрования данных, не исключено что он уже был придуман кем-то раньше.
(more…)

20091 Ноя

Низкоуровневое сетевое программирование. Пишем клиент/серверное приложение на сокетах Беркли

Вступление.
Итак. Свою новую статью я бы хотял посвятить низкоуровневому сетевому программированию. Постараюсь наиболее полно и одновременно сжато изложить основные принципы сетевого программирования, а так же будет рассмотрен пример построение рабочего многопоточного сервера и клиента. Все примеры разрабатывались и комплировались на Unix-подобной операционной системе и все ниже сказанное будет справедливо для любой Unix. Но, т.к. описываемое является стандартом, — данным материалом смогут воспользоваться и программисты, работающие в среде Windows (я на рассматривал конкретно сетевое программирование в этой ОС, т.к. не использую её), изменения коснуться, разве что, заголовочных файлов.
Как было сказано выше — будет рассмотрено низкоуровневое сетевое программирование. Справедливости ради, следует сказать, что оно, на самом деле, не такое уж низкоуровневое, т.к. существуют гораздо более низкие уровни, но все это, как правило, прерогатива ядра ОС/драйверов/железа. Для облегчения работы с сетью, операционной системой предоставляются особые объекты — сокеты (в некоторых книгах их называют «гнезда»), представляющие собой разновидность программных интерфейсов. Они позволяют представить сетевой интерфейс как простое устройство ввода/вывода и работать с ним, почти как с обычным файлом (что истинно, ибо в Unix все устройства представлены как файлы). Для работы с сокетами используются API, разработанные в Калифорнийском университете в городе Беркли (для BSD Unix) в 1983 году. Эти API являются сегодня стандартном де-факто и поддерживаются практически всеми современными операционными системами. Данный программный интерфейс, так же называют сокетами Беркли. В основе сокетов лежат протоколы TCP/IP и UDP. Рассмотрение особенностей каждого из них выходит за пределы данной статьи. Скажу только самое главное: TCP — это протокол, обеспечивающий надежное соединение и гарантированную доставку пакетов. UDP — протокол без установления соединения и без каких либо гарантий доставки пакета. IP — протокол сетевого уровня, служит транспортом для протоколов TCP и UDP.
(more…)

200916 Авг

Работаем в сети с помощью libcurl

В этой статье я бы хотел осветить вопросы взаимодействия с Web и Ftp серверами в C++ программе.
Никто не запрещает программировать сокеты и самостоятельно реализовывать протоколы. Но зачем изобретать велосипед, когда существует готовое, отлаженное и мощное решение, способное удовлетворить практически любые Ваши потребности? Речь идет о библиотеке libcurl. Это простая в использовании, кроссплатформенная (поддерживаются Linux, Windows, Solaris, Qnx, FreeBSD, OpenBsd, MacOS X и многие другие) клиентская библиотека, позволяющая работать с протоколами FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. Поддерживаются SSL сертефикаты, HTTP POST, HTTP PUT, FTP закачка, HTTP закачка, прокси-сервера, куки, аутентификация, восстановление закачки файла, тунелирование http proxy и многое другое. Libcurl имеет завязки на множество языков программирования, среди которых: C, C++, Java, Lisp, PHP, Ruby, Perl, Pascal, Haskell.
И самое главное — библиотека полностью свободна, как для некоммерческого, так и для коммерческого применения.

(more…)

200916 Авг

Работа с MySQL в С++ с использованием библиотеки mysql++

Под впечатлением от этой статьи я решил написать свой небольшой мануал по работе с СУБД MySQL, используя библиотеку mysql++. Данная библиотека представляет собой кроссплатформенное решение, написанное на С++, предоставляет богатый набор классов и позволяет эффективные приложения. Т.к. моей основной операционной системой является Linux — я буду рассматривать процесс создания приложения под Unix платформу. Под платформу Windows все будет практически точно так же, за исключением собственно подключения библиотеки, ее заголовочных файлов к IDE (MS Visual studio, Dev-c++).
Для создания приложения в среде Unix наличие IDE, как и собственно графической оболочки не необходимо, процесс написания и компиляции может проходить в голой консоли.

(more…)

200916 Авг

Кроссплатформенный анимированный осциллограф (GTK+, Cairo)

Я решил сделать кроссплатформенную версию  этого импровизированного осциллографа и полностью переписал программу на GTK+. Данная статья может быть полезна всем, кто только начал или собирается изучать этот тулкит. Параллельно в уроке рассматривается использование некоторых функций мощной библиотеки двухмерной графики Cairo.
В примере показана компиляция программы в Linux, пользователи Windows могу скомпилировать программу, например, с помощью MinGW, так же скомпилировать программу могут и пользователи Mac OS X. Вопросы компиляции на платформах, отличных от Linux выходят за рамки данной статьи и рассматриваться не будут. Те кто желает — всегда сможет разобраться самостоятельно, используя поиск.

(more…)


Облако меток

AdSense клиент компонент api ClientSocket библиотеки dll ServerSocket приложение INTERFACE шифровка байт char работа пароль учеба programmer процессор Application HANDLE Cursor C++ AssignFile хуки win api Project Internet google FASM memo исходники html функция язык System поиск GetLastError алгоритм программист programmersclub сервер форум exe сайт файл проект Assembler шифрование windows delphi