Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.12;
Скачать: CL | DM;

Вниз

Нужен совет по Сокетам   Найти похожие ветки 

 
msoftware ©   (2003-04-09 09:10) [0]

Приветствую! Нужен дельный совет по TClientSocket и TServerSocket.
Меня не устраивает размещение серверной и клиентской частей в разных программах, поэтому клиентскую часть я размещаю в программе, а серверная у меня запускается потоком при создании формы. Дак вот рационально ли я делаю. Ведь можно было бы просто разместить на одной форме TClientSocket и TServerSocket?


 
Calm ©   (2003-04-09 09:13) [1]

Это нерационально.

Ты не понимаешь сути клиент-серверной архитектуры.


 
Digitman ©   (2003-04-09 09:32) [2]

если ты сотворяешь прокси-сервер, то делай как угодно - хоть потоком хоть в design-time на форме ... что в лоб что по лбу) .. лишь бы была четкая синхронизация транспортных алгоритмов и кодовых потоков в ходе работы процесса такого прокси-приложения


 
Spartak ©   (2003-04-09 09:34) [3]

посмотри пример .../delphi/demos/internet/chat


 
msoftware ©   (2003-04-09 09:53) [4]

Так значит смешивать в одном приложении и Серверную и Клиентскую архитектуру нельзя? Я правильно вас понял?


 
Digitman ©   (2003-04-09 09:57) [5]


> Так значит смешивать в одном приложении и Серверную и Клиентскую
> архитектуру нельзя? Я правильно вас понял?


неправильно. все зависит от конкретно поставленной задачи


 
msoftware ©   (2003-04-09 10:03) [6]

Digitman © (09.04.03 09:57)

Так значит мой способ не будет работать между компами? Просто локально оно работает. Может вместе протестируем, я пришлю исходник?


 
Digitman ©   (2003-04-09 10:18) [7]


> msoftware



> Так значит мой способ не будет работать между компами?


Я не знаю, что ты подразумеваешь под своим "способом".
Есть такое понятие - "постановка задачи". Потрудись детально описать здесь то, что тебе требуется реализовать в конечном итоге. А присылать исходник непонятно чего без конкретной постановки задачи нет никакого смысла


 
msoftware ©   (2003-04-09 10:24) [8]

Нужно чтобы прога была понятна всем. Ведь я ориентируюсь на безграмотного юзера, который игрушку даже нормально поставить неможет. А ему ещё скажи открой это, открой то. "Нафиг тогда это надо", он скажет, "запишу ка я Аску лучше".
Может сделать по-другому:
Пользователь открывает клиентское приложение, и одновременно вместе с ним в фоновом режиме открывается другое приложение - сервер. И клиентская и серверная часть тогда окажутся отдельно.
Как вы считаете господа ?


 
msoftware ©   (2003-04-09 10:31) [9]

Digitman © (09.04.03 10:18)
Я не знаю, что ты подразумеваешь под своим "способом".

Отвечаю: Под своим способом я подразумеваю вот что:
1. Запускается эта самая прога, вместе с ним поток. В этом самом потоке создается TServerSocket. Ему указывается порт и прочие координаты.
2. Пользователь нажимает "Соедениться" и клиент соеденяется с Сервером.

Надеюсь я Нормально "разжувал" что хотел сказать.


 
Palladin ©   (2003-04-09 10:51) [10]


>Серверную и Клиентскую архитектуру нельзя


архитектура одна: Клиент-сервер (Карл Маркс Фридрих Энгельс это два человека, а не четыре)

У сервера свои задачи, у клиента свои. Клиент в основном обеспечивает работу с пользователем, сервер выполняет запросы клиента и возвращает данные...

и писать все в одной программе это по крайней мере идеологически не верно...


 
Digitman ©   (2003-04-09 10:51) [11]

ответь на простой вопрос : зачем на машине клиента (т.е. той машине, где будет работать клиентская логика) нужна еще и серверная логика ? У тебя что, какждый клиент будет осуществлять соединение с самим-собой ? А-ля "тихо сам с собою я веду беседу" ?
Классическая схема - в сети есть машина-"сервер", на которой работает серверное приложение (использующее, скажем, тот же TServerSocket), в сети есть другие машины, на каждой из которых работает клиентское приложение (TClientSocket). Клиенты на кл.машинах осуществляют коннект к серверному приложению на машине-"сервере", серверное приложение принимает запросы от удаленных клиентов, обрабатывает эти запросы и возвращает результаты обработки по индивидуальным установленным каналам связи с клиентами


 
AlexMax ©   (2003-04-09 20:45) [12]

Да ваще!!! Зачем пользоваться этими глючными Client/ServerSocket"ами??? Надёжнее и универсальнее было бы написать через WinSock функции, тем более, что в отличие от многих других виндовых библиотек, для WinSock есть готовый юнит. И там, я думаю, не понадобится создавать клиента и сервера. Один сокет будет служить и клиентом и сервером.


 
Digitman ©   (2003-04-10 08:39) [13]


> AlexMax



> Зачем пользоваться этими глючными Client/ServerSocket"ами???
>


Чушь. Никаких "глюков" нет. По кр.мере - в Д5


> Один сокет будет служить и клиентом и сервером


Тоже - чушь. Требуется как минимум 2 явно создаваемых гнезда : одно - "слушающее" серверное (+1 - неявно, в случае сервера ,см. WSAAccept()) и/или другое - клиентское


 
msoftware ©   (2003-04-10 08:43) [14]

Слухайте тогда вот что: я слышал что по протоколу UDP можно обходиться без сервера. То-есть клиент играет роль и сервера и клиента.
Источник из моей книжки "Delphi 5 Учебный курс"(С.Бобровский)


 
Digitman ©   (2003-04-10 09:19) [15]

Да, можно.
но UDP - протокол без гарантии доставки пакетов. Кр.того имеет определенные ограничения. Учитывай это при выборе.

см. http://book.itep.ru



Страницы: 1 вся ветка

Текущий архив: 2003.06.12;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.018 c
7-35091
Pavel M.
2003-04-08 21:03
2003.06.12
Изменение даты создания файла/каталога


14-35013
АлексейК
2003-05-26 05:46
2003.06.12
Набор данных из DLL.


14-34973
ALEX2003
2003-05-28 14:00
2003.06.12
Где взять BSDBGrid?


9-34665
Ricks
2002-12-30 14:08
2003.06.12
Вопрос к знатокам Direct3D


14-35049
Кен
2003-05-13 02:42
2003.06.12
Что такое сценарий в игре ? Всего-лишь разбросанные где попало