|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
||||||
RAD 2010 и Indy 1016.11.2010, 10:49. Показов 8304. Ответов 26
Метки нет (Все метки)
Доброго все времени суток, у меня возник вопрос, ранее писал программы по сетевому взаимодействию по TCP/IP в Builder C++ 6 с помощью TServerSocket и TClientSocket, достаточно удобные элементы, а вот в RAD 2010 для этого есть только компоненты Indy, а именно TIdTCPServer и TIdTCPClient, но столкнулся с проблемой, в этих компонентах видимо работа больше всего связанна с потоком, то есть надо уметь им оперировать, класть и вынимать(перехватывать). только как это делать я так и не разобрался.
Мне необходимо понять, как от сервера послать клиенту. тестирую через telnet Так выглядит сервер, который только может принимать информацию
0
|
||||||
| 16.11.2010, 10:49 | |
|
Ответы с готовыми решениями:
26
Indy 10 : замена версии в RAD XE Работа с объектами в C++ Builder 2010 (RAD 2010) Delphi 2010 (RAD Studio 2010) критическая область |
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||
| 28.11.2010, 22:00 | |||
![]() Есть же специально созданные компоненты: TIdTelnet и TIdTelnetServer... Есть также книга "Indy in Depth", написанная разработчиком Indy (Ч.Ховер, a.k.a. Кудзу). Однако, могу сказать, что русскоязычный вариант обладает минимумом полезной информации...
1
|
|||
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
||||
| 29.11.2010, 20:52 [ТС] | ||||
|
Нашел перевод этой книги, но она почему то для Delphi, или этот компонент изначально создавался под Delphi, а в Builder портировался. мог бы ссылку выложить, для аудитории, но боюсь не приветствуется выкладывать ссылки на другие источники! Добавлено через 21 час 39 минут Вопрос, каким образом можно реализовать функцию heartbeat, правда этот термин несколько не из этой области, он охватывает кластериацию, но смысл остается тем же, как мне реализовать, чтобы мой сервер опрашивал все активные(те что находятся в списке ContextList) соединения с клиентами, живы они и нет. тем самым чистя список от уже отвалившихся соединений(клиентов)
0
|
||||
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||
| 29.11.2010, 22:43 | |||
|
Используйте TIdTelnetServer, а не извращайтесь над "голым" TCP. ![]() Выше я показал, как при подключении клиента добавить идентификатор контекста в общий список. Можете создать отдельный поток, в котором будете по очереди высылать клиенту известный пакет (можете реализовать обмен командами через перечисление). На клиенте должна быть функция (выполняющаяся в отдельном потоке), ожидающая приёма сообщения и отправляющая такую же команду обратно серверу. Реализаций можно много придумать.. Хотя опять же, для TCP сервера от Indy это почти не имеет смысла, так как уже реализовано и вынесено в событие OnDisconnect.
0
|
|||
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
||||
| 29.11.2010, 23:29 [ТС] | ||||
|
0
|
||||
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||||||||
| 30.11.2010, 00:04 | ||||||||
![]() Нашёл один из своих проектов, где использовал реализацию подобного потока. Если интересно, функция имеет следующий вид:
0
|
||||||||
|
22 / 22 / 5
Регистрация: 18.03.2010
Сообщений: 331
|
|||
| 30.11.2010, 13:03 [ТС] | |||
|
Вопрос: acKeepAlive - это является исключением в данном случае?
0
|
|||
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||
| 30.11.2010, 13:14 | ||
|
0
|
||
| 30.11.2010, 13:14 | |
|
Помогаю со студенческими работами здесь
27
Rad Studio 2009 и Indy 9 RAD 2010 RAD Studio 2010
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|