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

Вниз

TClientSocket и TServerSocket   Найти похожие ветки 

 
NewDelpher ©   (2004-10-15 13:51) [0]

Будет ли дурным тоном использовние TClientSocket и TServerSocket в "несетевом" приложении для обмена данными между объектами?


 
cyborg ©   (2004-10-15 13:55) [1]

Будет :)


 
DiamondShark ©   (2004-10-15 14:03) [2]

Странные мысли порой в голову приходят...


 
iZEN ©   (2004-10-15 14:16) [3]

UNIX? ;)


 
NewDelpher ©   (2004-10-15 14:36) [4]

Видел в одной книге пример такого межпрограммного взаимодействия


 
cyborg ©   (2004-10-15 14:40) [5]


> [4] NewDelpher ©   (15.10.04 14:36)

А ты представь себе, что некоторые программы на твоём компьютере будут использовать эту "технологию" :) А потом кто-то Билла Гейтса обзывает нехорошими словами.


 
Rouse_ ©   (2004-10-15 14:43) [6]

> NewDelpher ©   (15.10.04 13:51)
Когда мой FireWall начинает кивать на активность какой то явно не сетевой програмки, я ее сразу же сношу от греха подальше, так что используй смело :))


 
КаПиБаРа ©   (2004-10-15 14:45) [7]

cyborg ©   (15.10.04 14:40) [5]
А че плохого если клиент и сервер работают на одном компе?

NewDelpher ©   (15.10.04 13:51)
для обмена данными между объектами?

Про какие объекты вы речь ведете?


 
NewDelpher ©   (2004-10-15 14:50) [8]


> Про какие объекты вы речь ведете?

про любые

TMyOby = class
...
end;

var MyOby: TMyObj


 
ПЛОВ ©   (2004-10-15 14:51) [9]

Какие требования о "обмену данными"?
Может подойдет SendMessage? Или файл/реестр...


 
КаПиБаРа ©   (2004-10-15 14:53) [10]

NewDelpher ©   (15.10.04 14:50) [8]
Если в пределах одного приложения, то это не дурной тон, а очень извращенное извращение.


 
cyborg ©   (2004-10-15 14:53) [11]


> [7] КаПиБаРа ©   (15.10.04 14:45)

То, что "Волгами" снег на дорогах не чистят, для этого есть спецтехника, хотя если у тебя есть эта машина, приделай к ней впереди ковш (чтоли называется :) и выезжай чистить дороги.


 
DiamondShark ©   (2004-10-15 14:54) [12]

Ты уж определись: "межпрограммного взаимодействия" или "в "несетевом" приложении для обмена данными между объектами".

Несколько разные, знаешь ли, вещи...


 
КаПиБаРа ©   (2004-10-15 14:55) [13]

cyborg ©   (15.10.04 14:53) [11]

Попрошу яснее выражатся. Причем тут волги и снег?


 
}|{yk ©   (2004-10-15 14:56) [14]

а если pipe использовать?


 
cyborg ©   (2004-10-15 14:57) [15]


> [13] КаПиБаРа ©   (15.10.04 14:55)
> Причем тут волги и снег?

При ковше.


 
NewDelpher ©   (2004-10-15 14:59) [16]


> Ты уж определись: "межпрограммного взаимодействия" или "в
> "несетевом" приложении для обмена данными между объектами".
>
> Несколько разные, знаешь ли, вещи...


Да это не мой термин. Там, насколько я помню была  Project Group из 2-х проектов. Так вот, один другому посылал текущее время, а другой ему отвечал количеством доступной памяти.


 
КаПиБаРа ©   (2004-10-15 14:59) [17]

cyborg ©   (15.10.04 14:57) [15]
А... я сразу то не догадался. Если волга без ковша, то тогда конечно дурной тон. :)


 
КаПиБаРа ©   (2004-10-15 15:01) [18]

КаПиБаРа ©   (15.10.04 14:59) [17]
Надо себе ковш поставить, хоть и не волга у меня :))


 
NewDelpher ©   (2004-10-15 15:01) [19]


> а если pipe использовать?

что за pipe?


 
cyborg ©   (2004-10-15 15:06) [20]


> [17] КаПиБаРа ©   (15.10.04 14:59)

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


 
}|{yk ©   (2004-10-15 15:06) [21]

Почитай статью про pipe на delphimaster


 
iZEN ©   (2004-10-15 15:11) [22]

Pipe - трубы - механизм межпрограммного взаимодействия, основан на RPC (Remote Procedure Call), можно сказать, что это "лёгкие сокеты" (не-Беркли). Сильно развит в UNIX-подобных системах (там нет COM-а).


 
NewDelpher ©   (2004-10-15 15:17) [23]


> Pipe - трубы - механизм межпрограммного взаимодействия,
> основан на RPC (Remote Procedure Call), можно сказать, что
> это "лёгкие сокеты" (не-Беркли). Сильно развит в UNIX-подобных
> системах (там нет COM-а).


Вот это мне и нужно. Осталось статю найти.


 
cyborg ©   (2004-10-15 15:33) [24]


> основан на RPC

Это которым так успешно MSBlast воспользовался? :)


 
Игорь Шевченко ©   (2004-10-15 15:38) [25]

А почему, собственно, нельзя использовать сокеты ?


 
DVM ©   (2004-10-15 15:40) [26]


> Будет ли дурным тоном

Не будет. Почему бы и нет. Одно из самых универсальных решений.


 
cyborg ©   (2004-10-15 15:44) [27]


> [25] Игорь Шевченко ©   (15.10.04 15:38)

Потому, что они не для этого предназначены.


 
Игорь Шевченко ©   (2004-10-15 15:47) [28]

cyborg ©   (15.10.04 15:44) [27]

Не для чего "не для этого" ?


 
DVM ©   (2004-10-15 15:49) [29]


> Потому, что они не для этого предназначены.

А для чего они тогда предназначены, если не для обмена данными между двумя программами? На одной или разных машинах - это уже другой вопрос.


 
cyborg ©   (2004-10-15 16:11) [30]


[28] Игорь Шевченко ©   (15.10.04 15:47)
[29] DVM ©   (15.10.04 15:49)

Они предназначены для обмена данными между компьютерами. Конечно можно сделать и на одном компьютере, даже будет работать, так же как "Волга" будет чистить снег.


 
DVM ©   (2004-10-15 16:17) [31]


> Они предназначены для обмена данными между компьютерами.
>

Тогда, например создатели большинства серверов баз данных - извращенцы. Так как обмен клиента с сервером происходит посредством сокетов. Часто и база и клиент располагаются на одной машине. Понятно, что есть способы другие (не сказать что проще), но они не менее тяжеловесные (COM) и не столь иногда универсальные.


 
BiN ©   (2004-10-15 16:23) [32]

NewDelpher ©   (15.10.04 13:51)  

Будет ли дурным тоном использовние TClientSocket и TServerSocket в "несетевом" приложении для обмена данными между объектами?


По поводу "дурного тона" не могу ничего сказать, мы люди деревенские, некнижные :).
Но все-таки имхо каналы (или pipes) использовать целесообразнее, если твое приложение "несетевое", как ты выразился.
Насколько я понимаю, механизм каналов использует MMF (memory mapped files), если ты обращаешься к локальному каналу, и TCP (скорее всего тот самый 139-й порт RPC), если по работаешь сети.
Также можно было бы использовать MMF напрямую, но тогда бы пришлось задействовать свою схему синхронизации записи считывания данных, которая у каналов уже есть.


 
BiN ©   (2004-10-15 16:25) [33]

BiN ©   (15.10.04 16:23) [32]
... если по работаешь сети.
читать, естественно, как "если работаешь по сети"


 
iZEN ©   (2004-10-15 16:26) [34]

Pipe, кстати, может работать и между компьютерами в сети.


 
cyborg ©   (2004-10-15 16:27) [35]


> Тогда, например создатели большинства серверов баз данных
> - извращенцы.

Если учесть, что они разрабатываются не только для того, чтобы работало на одном компьютере, то не извращенцы, а умные люди. Что же я, извращенец чтоли, если мой чат работает на моем компьютере?


 
NewDelpher ©   (2004-10-15 16:41) [36]


> iZEN ©   (15.10.04 16:26) [34]
> Pipe, кстати, может работать и между компьютерами в сети.

посмотрел статью, получается, поддержка pipe есть только в NT? а в 98-й как быть?


 
DVM ©   (2004-10-15 16:48) [37]


> а в 98-й как быть?

WM_COPYDATA например.


 
NewDelpher ©   (2004-10-15 16:50) [38]


>
> > а в 98-й как быть?
>
> WM_COPYDATA например.

не понял, причем здесь сообщение WM_COPYDATA?


 
DVM ©   (2004-10-15 16:54) [39]


> не понял, причем здесь сообщение WM_COPYDATA?

Позволяет передать данные между разными программами. Естесственно, имеющими окна.


 
Игорь Шевченко ©   (2004-10-15 16:57) [40]

NewDelpher ©   (15.10.04 16:41) [36]


> посмотрел статью, получается, поддержка pipe есть только
> в NT? а в 98-й как быть


В 98 нельзя создавать сервер канала, клиентов же можно.

cyborg ©   (15.10.04 16:11) [30]


> Они предназначены для обмена данными между компьютерами.
> Конечно можно сделать и на одном компьютере, даже будет
> работать, так же как "Волга" будет чистить снег.


А мне до сих пор казалось, что между процессами. Я сильно ошибался ?


 
cyborg ©   (2004-10-15 17:03) [41]


> А мне до сих пор казалось, что между процессами. Я сильно
> ошибался ?

Тебе казалось, что процессами, мне кажется компьютерами. Ошибаешься ли ты или нет я не знаю, мне ведь тоже кажется, а когда кажется креститься нужно ;)


 
Rouse_ ©   (2004-10-15 17:47) [42]

> Тебе казалось, что процессами, мне кажется компьютерами.
Тут ты сильно ошибаешся.

Но я еще раз пвторюсь, не странной ли вам покажется программа которая к примеру должна работать как блокнот, если она начинает непонятно для чего вдруг использовать сокеты и на нее начнет ругаться FireWall?


 
Verg ©   (2004-10-16 07:44) [43]

Из соображений масштабируемости, вариант использования сокетов для обмена данными очень даже приличный. Эта технология кроссплатформена по факту. Так что, использовав ее, ты оставишь своему проекту "степень свободы", перспективу. Главное -документировать ПИО и его строго придерживаться.

Все остальные способы обмена носят на себе "груз" специфичности или ограниченности пространственной или платформной.

P.S.
FireWall, который будет рубить сетевую активность на 127.0.0.1 (localhost), надо бы тоже снести :))


 
Megabyte ©   (2004-10-16 23:51) [44]


> TClientSocket и TServerSocket

Раз уж создали тему. У меня не поставлена библиотека с данными компонентами. Не подскажете название нужной библиотеки?


 
vidiv ©   (2004-10-17 00:19) [45]


> Megabyte ©   (16.10.04 23:51) [44]

Не подскажете название нужной библиотеки?


в delphi7 этик компонетов нет... есть indy.


> NewDelpher ©   (15.10.04 13:51)  
> Будет ли дурным тоном использовние TClientSocket и TServerSocket
> в "несетевом" приложении для обмена данными между объектами?

По мойму существует Гооораздо более удобные способы передачи информации в несокльких объектах... например глобальные переменные... работает гораздо надежнее чем сокеты, я так думаю!


 
Soft ©   (2004-10-17 00:43) [46]

>>Rouse_ ©   (15.10.04 17:47) [42]

>>Но я еще раз пвторюсь, не странной ли вам покажется программа которая к примеру должна работать как блокнот, если она начинает непонятно для чего вдруг использовать сокеты и на нее начнет ругаться FireWall?

Если ваш фаервол начинает ругаться на исходящий трафик на адрес 127.0.0.1 сносите его нифиг.

Если вы слышали про оконную систему XWindow, то она работает через сокеты на адрес 127.0.0.1 . Думаю ее не дураки писали, а используется она на всех Unix системах(в различных вариациях).

Так что использование сокетов для коннекта к адресу 127.0.0.1 это вполне нормально, только тут есть другая проблема, а что если нужный порт уже используется?

ЗЫ
Linux - rulez, Windows - Шматрица.

ЗЫ2
Игорь Шевченко, ну где ваше LMD?


 
iZEN ©   (2004-10-17 01:01) [47]

Кстати, переход на сокеты в системе взаимодействия приложений - это выход на слудующий уровень архитектурных сложностей. Ведь приложения теперь могут общаться не только по проводной сети, но даже по воздуху (wireless, WiFi), например, с сотовыми телефонами - если не ошибаюсь, поверх Синего Зуба тоже TCP/IP-сокеты?.


 
Verg ©   (2004-10-17 09:32) [48]


> в delphi7 этик компонетов нет... есть indy.


Во-первых есть. Прямо в комплекте поставки D7. Их надо просто доустановить, т.к. они не установлены в палитру по-умолчанию.

Во-вторых. Кроме этих компонентов есть Indy, TTCPClient/Server, есть просто winsock API (WSA).


 
Megabyte ©   (2004-10-17 12:03) [49]


> Во-первых есть. Прямо в комплекте поставки D7. Их надо просто
> доустановить, т.к. они не установлены в палитру по-умолчанию

Ну дык я про это и говорю, что по умолчанию не стоят. А вот не сможете подсказать, как библиотека нужная называется?



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

Форум: "Потрепаться";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.086 c
6-1094019695
Дмитрий Ботвин
2004-09-01 10:21
2004.11.07
Загрузка файла с FTP


8-1091708249
Dima_Delphi
2004-08-05 16:17
2004.11.07
Как изменять масштаб текста???


6-1093602959
maguk
2004-08-27 14:35
2004.11.07
Перечисление сетевых интерфейсов на локальном компьютере.


1-1098439854
calm
2004-10-22 14:10
2004.11.07
XMLDocument, проблема при чтении xml-файла.


1-1098441994
NeyroSpace
2004-10-22 14:46
2004.11.07
Как добавить свое свойство в *.dfm?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский