Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2009, 19:42   #11
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Клиент принимает два аргумента командной строки - адрес и порт сервера, если количество аргументов отличается - выводится подсказка по использованию. Далее происходит попытка подключения, с помощью совмещнной функции создания сокета и connect. В случае успешного подключения - выполняется процедура обмена сообщениями, почти как на сервере. После чего происходит закрытие сокета и завершение программы клиента.
Рабочий клиент:
oleg kutkov вне форума Ответить с цитированием
Старый 01.11.2009, 19:42   #12
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Заключение.
В этой статье были рассмотрены основы клиент/сервных приложений с использованием сокетов Беркли. Приведенный код лежит в основе практически любого подобного приложения. Все различие сводится в реализации протокола, а именно процедурах обмена сообщениями/пакетами данных с помощью read/write. Так же, для одновременной обработки множества запросов - сервера выполняют многопоточными. Принцип прост, после того как произошло входящее подключение - происходит запуск нового потока, с передачей ему сокета. В новом потоке происходит процесс обмена данными с клиентом, а основной поток в это время снова ожидает входящих подключений и процесс повторяется для нового клиента, но все это уже тема отдельной статьи.
Разумеется своей статьей я донес лишь основы сетевого программирования, т.к. это очень сложная и интересная тема. Если у Вас возникли какие либо вопросы или трудности - спрашивайте.
Очень рекомендую прочесть: "Стивенс Р. Unix. Разработка сетевых приложений." и "Камер Д. Разработка приложений типа клиент/сервер".
Эти книги являются бестселлерами в своей области.
oleg kutkov вне форума Ответить с цитированием
Старый 01.11.2009, 19:53   #13
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

...как скромный представитель редколлегии журнала Радиолюбитель (Минск) хотел-бы спросить вас: не хотите-ли вы сделать и опубликовать цикл статей, посвященных данному вопросу в нашей новой рубрике "Информационные технологии"?

пы-сы: если конечно-же вы не рассматриваете иные варианты или другие цели.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 01.11.2009, 19:55   #14
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

С превеликим удовольствием
oleg kutkov вне форума Ответить с цитированием
Старый 01.11.2009, 20:15   #15
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,742
По умолчанию

отправил в личку, жду.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.03.2010, 11:56   #16
T@Rak0t
Пользователь
 
Аватар для T@Rak0t
 
Регистрация: 10.03.2010
Сообщений: 17
По умолчанию

а чем эти сокеты лучше стандартных winsock?
T@Rak0t вне форума Ответить с цитированием
Старый 19.04.2010, 10:36   #17
oleg kutkov
Unix C++ developer
Форумчанин
 
Аватар для oleg kutkov
 
Регистрация: 16.04.2007
Сообщений: 651
По умолчанию

Цитата:
Сообщение от T@Rak0t Посмотреть сообщение
а чем эти сокеты лучше стандартных winsock?
Тем, что winsock - это windows only реализация сокетов.
oleg kutkov вне форума Ответить с цитированием
Старый 15.07.2010, 12:38   #18
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Странно,у меня сервер падает сразу же после принятия любого сообщения.

Жалуется на переполнение.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 15.07.2010 в 12:40.
ROD вне форума Ответить с цитированием
Старый 16.07.2010, 16:24   #19
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

rod@rod-desktop:~/проекты/socet_base/bin/Debug$ ./socet_base
*** buffer overflow detected ***: ./socet_base terminated
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x50)[0x53e390]
/lib/tls/i686/cmov/libc.so.6(+0xe12ca)[0x53d2ca]
/lib/tls/i686/cmov/libc.so.6(+0xe05fa)[0x53c5fa]
./socet_base[0x8048b42]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x472bd6]
./socet_base[0x80487e1]
======= Memory map: ========
0018e000-001b2000 r-xp 00000000 08:14 5168 /lib/tls/i686/cmov/libm-2.11.1.so
001b2000-001b3000 r--p 00023000 08:14 5168 /lib/tls/i686/cmov/libm-2.11.1.so
001b3000-001b4000 rw-p 00024000 08:14 5168 /lib/tls/i686/cmov/libm-2.11.1.so
0045c000-005af000 r-xp 00000000 08:14 5164 /lib/tls/i686/cmov/libc-2.11.1.so
005af000-005b0000 ---p 00153000 08:14 5164 /lib/tls/i686/cmov/libc-2.11.1.so
005b0000-005b2000 r--p 00153000 08:14 5164 /lib/tls/i686/cmov/libc-2.11.1.so
005b2000-005b3000 rw-p 00155000 08:14 5164 /lib/tls/i686/cmov/libc-2.11.1.so
005b3000-005b6000 rw-p 00000000 00:00 0
00603000-006ec000 r-xp 00000000 08:14 3146 /usr/lib/libstdc++.so.6.0.13
006ec000-006ed000 ---p 000e9000 08:14 3146 /usr/lib/libstdc++.so.6.0.13
006ed000-006f1000 r--p 000e9000 08:14 3146 /usr/lib/libstdc++.so.6.0.13
006f1000-006f2000 rw-p 000ed000 08:14 3146 /usr/lib/libstdc++.so.6.0.13
006f2000-006f9000 rw-p 00000000 00:00 0
00777000-00778000 r-xp 00000000 00:00 0 [vdso]
00824000-0083f000 r-xp 00000000 08:14 7299 /lib/ld-2.11.1.so
0083f000-00840000 r--p 0001a000 08:14 7299 /lib/ld-2.11.1.so
00840000-00841000 rw-p 0001b000 08:14 7299 /lib/ld-2.11.1.so
00941000-0094b000 r-xp 00000000 08:14 5173 /lib/tls/i686/cmov/libnss_files-2.11.1.so
0094b000-0094c000 r--p 00009000 08:14 5173 /lib/tls/i686/cmov/libnss_files-2.11.1.so
0094c000-0094d000 rw-p 0000a000 08:14 5173 /lib/tls/i686/cmov/libnss_files-2.11.1.so
00f75000-00f92000 r-xp 00000000 08:14 1848 /lib/libgcc_s.so.1
00f92000-00f93000 r--p 0001c000 08:14 1848 /lib/libgcc_s.so.1
00f93000-00f94000 rw-p 0001d000 08:14 1848 /lib/libgcc_s.so.1
08048000-08049000 r-xp 00000000 08:13 918282 /home/rod/проекты/socet_base/bin/Debug/socet_base
08049000-0804a000 r--p 00000000 08:13 918282 /home/rod/проекты/socet_base/bin/Debug/socet_base
0804a000-0804b000 rw-p 00001000 08:13 918282 /home/rod/проекты/socet_base/bin/Debug/socet_base
08a30000-08a51000 rw-p 00000000 00:00 0 [heap]
b777b000-b777d000 rw-p 00000000 00:00 0
b779c000-b779e000 rw-p 00000000 00:00 0
bfd04000-bfd19000 rw-p 00000000 00:00 0 [stack]
Аварийный останов
rod@rod-desktop:~/проекты/socet_base/bin/Debug$
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 11.08.2010, 19:51   #20
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Кажется нашел я ошибку. Длинны строки msg было мало (по крайней мере, ее удлинение устранило ошибку.)
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простейшее клиент-серверное приложение в Delphi 2009 RNT Работа с сетью в Delphi 15 21.11.2010 19:08
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18
Язык низкоуровневое программирование Assembler jackpatriot Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 03.01.2009 19:05
Клиент-серверное приложение: Callback MaTBeu Общие вопросы C/C++ 13 02.06.2008 20:27
Клиент-серверное приложение veryseldom Работа с сетью в Delphi 8 20.08.2007 19:57