Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
14-34977
paxer
2003-05-26 12:08
2003.06.12
Вот думаю переходить с Д5 на Д6. Стоит ли?


1-34777
vvvvv
2003-06-02 11:33
2003.06.12
Как запретить onMouseWheel?


14-35043
малага
2003-05-27 16:57
2003.06.12
ISAPI не правильно выдает ай-пи...


3-34679
Snv-Soft
2003-05-22 07:27
2003.06.12
Как запросом получить интервалы ИД таблицы?


4-35129
PukeZero
2003-04-12 13:58
2003.06.12
Как обработать WM_MOUSEWHEEL неактивной форме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский