![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про сокеты [D6, D7, WinXP]
Ivolg © (2004-08-07 11:23:00)Здраствуйте! У меня вопрос по сокетам. Дела в том что к сервере может подключатся 1 клиент. А как можно сделать чтобы могло подключатся несколько клиентов? Спасибо!
Skif (2004-08-09 01:55:00) [21]Ну к такому я и склоняюсь варианту, но что если мне надо передать рисунок тот-же? как сформироввать заголовок?
VID (2004-08-08 12:08:00) [22]Skif (08.08.04 02:09) [8]
Ну напрммер, как тебе такая идея.
Формат передаваемых данных будет таков: заголовок + тело.
В заголовке указывается:
1. Тип (сообщение, данные)
2. Длина тела.
В теле соответственно идут уже данные какие нить (твой вордовский файл) или же просто текст сообщения.
Это очень простой вариант, точнее сказать упрощённый.
Verg (2004-08-08 11:17:00) [23]
> дяде Васе, а не Пете
Это есть протокол уровня приложения. Каким бы транспортным протоколом ты не пользовался, протокол уровня приложения - это конкретная ответственность приложения. Никто за тебя его поддерживать не будет.
> Структура которую себе представляю слишком путанная и сможеством
> всякого хлама если реализовывать через сокет, может есть
> обходные пути?
Убери всякий хлам, распутай запутанность. Что тут еще посоветуешь....
Skif (2004-08-08 02:09:00) [24]Народ, а подскажите что нит полезное из этой же области.
Сейчас пишу нечто на манер аси. Сервер пишется под фрю на C++ а вот клиенты под делфу, но суть в принципе не в этом. Тут промелькнула фраза, что сокеты может быть не самый лучший вариант. А что можно посоветовать в замен?
Пояснюсь что мне нужно - клиенты конектятся к серверу на определенный порт, отправляют на СЕРВЕР сообщение, а он просматривыает заголовок, ложит копию в базу, а потом пересылает нужному клиенту(там).
У меня возникают два вопроса в связи с этим, как передавая буфер указать, что это именно идет дяде Васе, а не Пете при этом не скатившись в жесткую привязку к текстовому формату, заголовкам и прочей лабуде - ведь в плане пересылать ею и разный хлам, а-ля вордовский документ и пр.. Структура которую себе представляю слишком путанная и сможеством всякого хлама если реализовывать через сокет, может есть обходные пути?
Rouse_ (2004-08-07 20:28:00) [25]> ну скажем так это не проблема если обрабатывать OnAccept :)
Я сторонними обертками не пользуюсь, поэтому слабо представляю как они там реализованы :)
able (2004-08-07 15:59:00) [26]
> Ivolg (07.08.04 11:23)
А что пишешь? Может сокеты не самый лучший выбор?
---
''Смысл жизни состоит в том, чтобы умело скрывать её бессмысленность'' (с) Даль. http://www.maxx-ch.net
VID (2004-08-07 13:51:00) [27]Ivolg (07.08.04 13:44) [4]
да ты просто Шерлок ! ;)
Ivolg (2004-08-07 13:44:00) [28]VID
Так и знал что это на клиента указывает. СПАСИБО!!!!
VID (2004-08-07 13:31:00) [29]>>Вопрос в другом, а как ты сделал чтобы к нему мог подключиться только один клиент?
ну скажем так это не проблема если обрабатывать OnAccept :)
>>Ivolg (07.08.04 13:18) [2]
>>Server.Socket.conections[0].SendText('Привет');
Текст будет передан первому клиенту, потому что ты сам указал, что его надо передать именно первому подключившемуся клиенту.
conections[0] - первый подключившийся клиент.
conections[1] - второй подключившийся клиент.
conections[2] - третий подключившийся клиент.
...
Ivolg (2004-08-07 13:18:00) [30]>Rouse_
Они подключаются! Но когда я в сервере пишу:
Server.Socket.conections[0].SendText('Привет');
То это текст передаётся таму клиенту который перевый подключился!
Rouse_ (2004-08-07 12:53:00) [31]К серверу может подключаться сколько угодно клиентов.
Вопрос в другом, а как ты сделал чтобы к нему мог подключиться только один клиент? ;)