| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > TcpClient |
| Автор: iddqd 14.7.2006, 15:01 | ||||
| ... закрытия соединения. Т.е. код примерно такой:
В данном случае команда выполнится корректно, но сервер конечно же не успеет ничего ответить, потому-что соединение будет сразу закрыто. А если делать
По нажатию на другую кнопку, а в первом коде закоментить, то до тех пор, пока не произойдёт отключение команда не отправится Мне необходимо, чтоб соединение держалось постоянно и шел обмен командами. Может есть какой нибудь метод у TcpClient для того, чтобы отправить команду немедленно? |
| Автор: Snowy 14.7.2006, 15:14 |
| TcpClient1.Sendln('hello moto'); Добавлено @ 15:15 Отправляется она немедленно. Просто сервер читает строку, а ты не отправил завершение строки. Поэтому сервер и не реагирует, пока не придёт конец строки или дисконнект. Просто убрать второй параметр и конец строки будет отправляться, а сама строка корректно читаться. |
| Автор: iddqd 14.7.2006, 15:25 | ||||
Спасибо, Snowy как обычно ответ быстро и по существу. Мне помогло. Но теперь подобная проблема с сервером.
А в клиенте приём организован вот так:
Но клиент не выводит никакого сообщения. P.S. Я знаю правила. Один топик - один вопрос. Но вопросы братья родные и не имеет смысла создавать два одинаковых топика, ИМХО. |
| Автор: Snowy 14.7.2006, 15:40 |
| Тут вариантов куча. Даже не знаю. Может клиент забыл отправить строку серверу. Может был дисконнект. Да что угодно может быть. Нужно или код посмотреть, или расставить бряки, чтобы увидеть заходит он вообще туда или нет... |
| Автор: iddqd 17.7.2006, 17:48 |
| Snowy, или кто-либо другой. Вы можете написать простейший пример, где есть клиент и сервер. Клиент отправляет команду, например, команда: 2 аргументы: hello и второй: moto Сервер их принимает и если второй аргумент <> moto, то отвечает клиенту что-то. И клиент выводит сообщение о том, что неверный аргумент. У кого есть время и кому не лень - сделайте пожалуйста, а то сил моих больше нет 3 дня совокупляюь с клиент-сервером. Можно сделать хоть на IndyTCPClient\Server, хоть на просто TTCpClient\Server. На осонове этого примера я уже смогу сделать всё, что мне надо. Буду очень признателен. Спасибо заранее. |
| Автор: Snowy 18.7.2006, 10:11 |
| http://vingrad.ru/DELPHI-DLP-001358 http://vingrad.ru/DELPHI-DLP-001367 Также приаттачиваю пример из IndyDemo |
| Автор: iddqd 18.7.2006, 13:33 |
| Спасибо, но: - эту демку я видел и на её основе всё равно не получается сделать то, что мне надо. - она не подходит для BDS'06 |
| Автор: Snowy 18.7.2006, 13:50 |
| Про 2006 не говорилось. Но это поправимо. Внизу этой страницы есть список "А здесь смотрели?". Вот первый линк http://forum.vingrad.ru/index.php?showtopic=81767 тебе и нужен. |
| Автор: iddqd 18.7.2006, 16:54 |
| Да. Явидел этот топик, но не помогло и это. Я ведь говорил, что перепробывал массу демок. Видимо мне уже не что не поможет |
| Автор: Snowy 19.7.2006, 12:06 |
| Ну звиняйте. 10-й инди у меня щас нету. Я на D7 пишу, а там 9-ка... |
| Автор: Romikgy 19.7.2006, 12:16 | ||
Вот демо для 10
Что конкретно не выходит? |