WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Simple Client-Server... Simplest sample!

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Simple Client-Server... Simplest sample!
Wild Programmer опубликован 09-02-2002 02:36 MSK   Click Here to See the Profile for Wild Programmer   Click Here to Email Wild Programmer  
Ребят, помогите пожайлуйста... Я, ни как не пойму как лучше реализовать Client/Server (не знаю на сколько это важно но я хочу сделать TCP соединение)... То есть как мне слушать сокет, и если, что-то пришло... то ответить клиенту... Надеюсь, кто нибудь из Вас мне поможет... Если не трудно то простейший пример (в идеале с пояснениями)... И ещё... Я, ни как не пойму... если создать событие для сокета, то как его потом ловить... Например,я не хочу, чтобы сервер имел окно... Ну... и как тогда быть... Я, не матёрый программер, поэтому отнеситесь с пониманием? Да, я нащел много исходников но вв каждом реализовано по разному... И с кучей наворотов... Я же хочу пока только основное... понять принцип...
MatrixST опубликован 09-02-2002 11:57 MSK     Click Here to See the Profile for MatrixST  Click Here to Email MatrixST     
Могу помочь! У мя есть компонент для работы с сетью (сам написал) с помощью него ты могешь легко понять как организовать Client/Server. Если ты заинтересовался говори! Если у тя есть номер в аське скажи его! будет легче общаться. :))
delitant опубликован 09-02-2002 16:15 MSK     Click Here to See the Profile for delitant  Click Here to Email delitant     
Пойди в книжный магазин и поищи «Эффективное программирование TCP/IP»
Там многие вещи довольно грамотно рассказываются
purpe опубликован 09-02-2002 16:37 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
2Wild Programmer:
если ты решил сурьёзный сервак наваять, то на мой взгляд лучшего примера чем поставляемый с Visual C++ пример веб-сервера не найти.
Можно конечно взять исходник апача, но там чёрт ногу сломит.
А лучшего клиента чем браузер тоже не найти :)
Wild Programmer опубликован 09-02-2002 17:36 MSK     Click Here to See the Profile for Wild Programmer  Click Here to Email Wild Programmer     
Ребят, спасибо, что откликнулись...
Но, эта... Как бы эта сказать :)
Я всё ни как не могу панять некоторые "закавыки" в реализации...
Вообще вот e-mail мой
Wild_Programmer@mail.ru
Если кто желает помочь, я буду очень рад...
Пока хочу самое простетское (что не есть сурьёзный :) сервер/клиент приложение..
Если Вы не против вопросы по реализации я буду здесь иногда задавать...
Только Вы если чего отвечайте? Ну, как?
Вот, например первый:
Как лучше организовать работы с сервером, как "вечный" цикл while(1){...}, как многопоточное приложение, или через обработку событий... Хотя, что есть события ? :) - их ведь тоже надо как-то обрабатывать... Неважно... Пока у меня голова отнимается...
Если события - то нужно окошечко... В принципе можно и окно... Но оно не нужно... Значит и события вроде отпадают...
server_mouse опубликован 09-02-2002 19:30 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
>Как лучше организовать работы с сервером,
>как "вечный" цикл while(1){...}, как
>многопоточное приложение, или через обработку событий...

Клиент лучше делать однопоточным с обработкой по событию. В вечном цикле твоё приложение не сможет обрабатывать др. события (например то что пора завершиться). Извращённые подходы со встраиванием в этот цикл обработки очереди в расчёт не беру. Если не хочешь увидеть как всё процессорное время ушло на твой вечный цикл, выбирай события.
Сервер наверное лучше исходя из принципа -- каждому клиенту свой поток.

>Если события - то нужно окошечко...
Враки!
http://www.sources.ru/cpp/cpp_network_evets_winsock2.shtml

>В принципе можно и окно... Но оно не нужно...
И как ты будешь завершать его работу? Через TaskManager->TerminateProcess ?? Хотя конечно можно и консоль... или сервис...

MatrixST опубликован 09-02-2002 20:33 MSK     Click Here to See the Profile for MatrixST  Click Here to Email MatrixST     
2Wild Programmer: Яж те говорю что заведи себе аську! Я те все объясню!
dvorobjov опубликован 09-02-2002 21:17 MSK     Click Here to See the Profile for dvorobjov  Click Here to Email dvorobjov     
server_mouse прав. "Каждому клиенту свой поток" - наиболее простое и качественное решение. Ты можешь для каждого потока создать структуру, в которой он будет описывать свое текущее состояние и хранить всякие там ресурсы или ссылки на них. Как только получаешь коннект, создаешь экземпляр такой структуры и заполняешь ее, затем создаешь поток и передаешь ему ее адрес. Проконтролировать его (поток) нет никакой сложности. И загрузки процессора лишней нет.
delitant опубликован 09-02-2002 21:41 MSK     Click Here to See the Profile for delitant  Click Here to Email delitant     
На мой взгляд, хороший пример сетевой проги в которой явно проявляется
маштабируемость. Находится на uinc.ru - это их прокси сервер. Ну правда и у него есть свои не точности, но их меньше чем в других примерах. Кстати он вроде на сорсах тоже есть.
2 server_mouse. Ссылка котирую, ты подкинул Wild Programmer - у вряд ли ему поможет. Так как рановато ему еще такими игрушками баловаться.
2 Wild Programmer. Потренируйся пока с блокирующими функциями. напиши пару прог с в которых была бы показана работа smpt, pop3, http. Потом select, ioctlsocket, после WSAAsyncSelect и тому подобные вещи.
Wild Programmer опубликован 10-02-2002 12:47 MSK     Click Here to See the Profile for Wild Programmer  Click Here to Email Wild Programmer     
2 Matix... Да, это... Есть у меня одна аська... Хватит, наверное :)
147264231...
Только, как ты мне объяснишь... Это, может показаться странным, но в I'net'е я только после 24:00(01:00) :(
И, даже, не спрашивайте "почему?" :)
Я, и так надыбал простеньких исходников, теперь их разбираю... Мне, сразу приглянулся, один... Там, через собщения... Друой, - отдельным потоком, причем, как то странно... Создаётся поток, blah-blah-blah... Поток закрывается, а перед закрытием из закрывающегося потока создаётся ещё один поток.... Ну, ни чего и не такое разбирали :)
Спасибо всем ещё, раз за советы...
Banev опубликован 10-02-2002 18:47 MSK     Click Here to See the Profile for Banev  Click Here to Email Banev     
Если под MFC, то может http://www.sources.ru/cpp/cpp_mfc_client_server_technology.shtml пригодится
alex2808 опубликован 13-02-2002 02:33 MSK     Click Here to See the Profile for alex2808  Click Here to Email alex2808     
А сырцов по другим технологиям Client-Server никто не встречал? Corba,DCOM,др.
alex2808 опубликован 14-02-2002 15:53 MSK     Click Here to See the Profile for alex2808  Click Here to Email alex2808     
Ребята...Очень интересная тема, для каждого клиента - свой поток. Можете кинуть ссылочку или примерчик реализации...
purpe опубликован 14-02-2002 15:59 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
пока я здесь, то буду всегда рекомандовать пример веб-сервера, который поставляется с Visual Studio.
alex2808 опубликован 14-02-2002 16:25 MSK     Click Here to See the Profile for alex2808  Click Here to Email alex2808     
2purpe:
Он в MSDN называется HTTPSVR в вкладке MFC Internet Samples?
alex2808 опубликован 14-02-2002 16:38 MSK     Click Here to See the Profile for alex2808  Click Here to Email alex2808     
Ага нашел еще один в SDK...
Sample TCP/UDP server..
Может этот?
AdminDimon опубликован 16-02-2002 18:41 MSK     Click Here to See the Profile for AdminDimon  Click Here to Email AdminDimon     
Кстати, прикупил сегодня москалевскую (питерскую?) книжицу "Программирование в сетях Microsoft Windows" Э.Джонс, Д.Оланд. ДОроговато, 22500 руб. беларусских ;-)(~ 13,5$), но она того стоит. Рекомендую!

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.