Это попытка перефразировать my previous question в результате полученной ими обратной связи.Ищу (бесплатно) рамки для сетевого программирования
Я хочу простую сетевую связь, которую я могу использовать в качестве базовой структуры и никогда не смотреть снова. Я просто хочу, чтобы вы нажимали строку с одного ПК на другой и получали строку в ответ. Я не хочу, чтобы беспокоиться об открытии разных цветов, держа их открытыми, открытие их, если они закрываются, и т.д.
я хочу сконцентрироваться на применении и имею простой функциональный API вдоль линий:
SendStringToOtherPc() : String; // Called at PC#1.
// Returns PC#2's result string
// or "" on error (or throws exception)
ProcessReceivedStringAndReply(); // Called at PC# 2. Sends result string
- Мне нужно знать, ответил ли другой компьютер или нет; и если да, то какая строка результата была
- также «приятно иметь» было бы для обоих ПК инициировать связь. Если нет, у меня может быть один из них (опрос клиентов) или другой отправить его сообщение в ответ на пульс, который мне нужно добавить.
Я полагаю, что те, с несколькими fprojects под их поясами имеют каркас «стартер», который они используют для каждого нового проекта, просто добавив для конкретного применения журнала - и это такая framwork, или уровень абстракции, что я хочу , Может ли кто-нибудь указать мне URL?
Я ничего не знаю о программировании сокетов и на самом деле не успеваю учиться. Если я это сделаю, пострадает какой-то другой проект.
Несмотря на то, что я уважаю аргумент, что я должен понимать, что делает мое программное обеспечение, есть веские аргументы в пользу того, что каждому не нужно будет разрабатывать это конкретное колесо для себя, и, безусловно, есть какая-то FOSS, вокруг которой что-то делает Я хочу?
Заранее спасибо.
Обновление: Я, кажется, начал немного противоречий, с некоторыми считая меня ленивым или обречена на катастрофу. Поэтому, может быть, я должен немного объяснить свою историю.
Я потратил три десятилетия на развитие телекоммуникационного программного обеспечения, и мы всегда следовали за OSI 7 layer model. Обычно я был слоем 3, сетевым уровнем, и независимо от того, была ли это телефонной станцией, базовой станцией или hanset, был ли протокол ISDN, ISUP, DECT, GSM, GPRS, UMTS или спутниковым протоколом, я всегда мог точка доступа Serveice уровня 2, уровень переноса данных, «эй, вы! Получите это сообщение другому человеку и скажите мне, что его ответ». Знал ли я, как это было сделано? Меня это волнует?
@CosmicPrund, которому, вероятно, будет присужден ответ, если кто-то не укажет меня на уровне 2, сказал: «Истинный ответ на этот вопрос заключается в том, что все, что вам нужно, это узнать, как использовать Indy», и я прошу не согласиться.
Кто-то будет, но не я, если я могу ему помочь. Я уже склонялся к слишком многим навыкам, языкам программирования, системам баз данных, системам отпечатков и всегда избегал изучения большего, чем обзор другого, если можно. Как и сэр Исаак Ньютон, я предпочел бы стоять на плечах гигантов.
Программное обеспечение просто становится слишком большим для одного парня. Неужели никто из вас не запускает каждый проект с нуля? Я думаю, вы повторно используете сетевой код из предыдущего проекта (?), И этот многоразовый код является моим «Слоем 2». И мой вопрос в том, где я могу загрузить такой код и использовать его, не понимая его внутренней работы?
Кто-нибудь знает о такой вещи?
Ответ: Я использовал Инди и получил то, что хотел. Я попытаюсь создать библиотеку функций, которые я могу использовать в качестве уровня сетевой абстракции.
Вы не можете избежать проблем с подключением, отключением, задержкой и всеми другими проблемами, связанными с сетью. Сеть просто недостаточно надежна, это не похоже на то, что вы вызываете функцию от одного устройства к другому. Любая достойная структура будет раскрывать всю эту функциональность просто потому, что любое приличное сетевое приложение должно сделать информацию доступной для конечного пользователя. Тем не менее, учитывая «взгляд» вашего ожидаемого API, загляните в SOAP. –
@Cosmin: +1, а также для предложения SOAP. Это позволит универсальность отправки материалов на другую сторону, в то время как остается возможность «просто» WinINet или Indy HTTPGet отправить запрос и получить ответ. Другой конец будет немного более активным, но использование webbrokerbridge должно быть довольно легким для реализации. Извините, Mawg: не делайте что-нибудь, чтобы лететь, чтобы помочь вам. –
Я предполагаю, что для Delphi не существует универсальной, единой платформы для всех. Реализация зависит от ваших точных спецификаций - например: нужно ли только приложениям обмениваться данными между этими двумя компьютерами, или может быть задействовано больше компьютеров сейчас или позже? Если да, то какая топология - один компьютер как центральный «сервер» или «мастер» (или «брокер сообщений»)? Или это одноранговая связь, где компьютеры могут напрямую разговаривать друг с другом? – mjn