![]() |
|
Модераторы: Snowy, Poseidon, MetalFan |
![]()
|
|
| iddqd |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
... закрытия соединения.
Т.е. код примерно такой:
В данном случае команда выполнится корректно, но сервер конечно же не успеет ничего ответить, потому-что соединение будет сразу закрыто. А если делать
По нажатию на другую кнопку, а в первом коде закоментить, то до тех пор, пока не произойдёт отключение команда не отправится Мне необходимо, чтоб соединение держалось постоянно и шел обмен командами. Может есть какой нибудь метод у TcpClient для того, чтобы отправить команду немедленно? -------------------- |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
TcpClient1.Sendln('hello moto');
Добавлено @ 15:15 Отправляется она немедленно. Просто сервер читает строку, а ты не отправил завершение строки. Поэтому сервер и не реагирует, пока не придёт конец строки или дисконнект. Просто убрать второй параметр и конец строки будет отправляться, а сама строка корректно читаться. |
|||
|
||||
| iddqd |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Спасибо, Snowy как обычно ответ быстро и по существу. Мне помогло. Но теперь подобная проблема с сервером.
А в клиенте приём организован вот так:
Но клиент не выводит никакого сообщения. P.S. Я знаю правила. Один топик - один вопрос. Но вопросы братья родные и не имеет смысла создавать два одинаковых топика, ИМХО. -------------------- |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Тут вариантов куча. Даже не знаю.
Может клиент забыл отправить строку серверу. Может был дисконнект. Да что угодно может быть. Нужно или код посмотреть, или расставить бряки, чтобы увидеть заходит он вообще туда или нет... |
|||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Snowy, или кто-либо другой.
Вы можете написать простейший пример, где есть клиент и сервер. Клиент отправляет команду, например, команда: 2 аргументы: hello и второй: moto Сервер их принимает и если второй аргумент <> moto, то отвечает клиенту что-то. И клиент выводит сообщение о том, что неверный аргумент. У кого есть время и кому не лень - сделайте пожалуйста, а то сил моих больше нет 3 дня совокупляюь с клиент-сервером. Можно сделать хоть на IndyTCPClient\Server, хоть на просто TTCpClient\Server. На осонове этого примера я уже смогу сделать всё, что мне надо. Буду очень признателен. Спасибо заранее. -------------------- |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
http://vingrad.ru/DELPHI-DLP-001358
http://vingrad.ru/DELPHI-DLP-001367 Также приаттачиваю пример из IndyDemo Присоединённый файл ( Кол-во скачиваний: 27 )
IdTCPDemo.zip 6,93 Kb |
|||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Спасибо, но:
- эту демку я видел и на её основе всё равно не получается сделать то, что мне надо. - она не подходит для BDS'06 -------------------- |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Про 2006 не говорилось.
Но это поправимо. Внизу этой страницы есть список "А здесь смотрели?". Вот первый линк http://forum.vingrad.ru/index.php?showtopic=81767 тебе и нужен. |
|||
|
||||
| iddqd |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: нет Всего: 2 |
Да. Явидел этот топик, но не помогло и это.
Я ведь говорил, что перепробывал массу демок. Видимо мне уже не что не поможет -------------------- |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 53 Всего: 484 |
Ну звиняйте.
10-й инди у меня щас нету. Я на D7 пишу, а там 9-ка... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
Вот демо для 10
Что конкретно не выходит? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 5 Всего: 158 |
все серверные события(TCPServer.OnXXX) вызываются из потоков, созданных для каждого подключившегося клиента. посему обычная проблема взаимодействия потоков - ищи по форуму, читай. вкратце так: из методов indy-сервера НЕЛЬЗЯ напрямую взаимодействовать с формами(ShowMessage - туда же). |
|||
|
||||
![]()
|
| Правила форума "Delphi: Сети" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Сети | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |