Теперь и не знаю, можно ли сюда писать по пакету Delphi...
В общем, вот схемка: code_1559.txt а теперь вопрос: как так получается, что отсылаются два сообщения, а принимается одно, с текстом обоих?
Или это только у меня так
Этот топик читают: Гость
Ответов: 3851
Рейтинг: 159
|
|||
карма: 0 |
| ||
файлы: 1 | code_1559.txt [964B] [211] |
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Андрей., получается это так, что сначала данные копятся в восьмикилобайтном буфере TCP протокола а потом улетают в сеть(либо наоборот улетают как попало, а потом копятся в приемном буфере) и в таком виде принимаются компонентом. Ошибкой это не является.
|
|||
карма: 27 |
|
Ответов: 3851
Рейтинг: 159
|
|||
Dilma писал(а): что сначала данные копятся Не понял - это же транспорт, я думал там сообщения передаются. Типа юзер сказал отослать - значя он его подготовил к отправке, а уж как там TCP будет пыхтеть - это его проблемы (на то он и TCP). И пока на приёмной стороне все пакеты не соберёт - низачто не признается, что у него уже что-то получено, ну и так далее по тексту |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Андрей. писал(а): Не понял - это же транспорт, я думал там сообщения передаютсяTCP - транспортный протокол высокого уровня с установкой соединения, работающий поверх IP и обеспечивающий гарантированную передачу данных от источника к приемнику(все данные дойдут и в правильном порядке). Больше ничего этот протокол обещать не может. |
|||
карма: 27 |
|
Ответов: 3851
Рейтинг: 159
|
|||
Dilma писал(а): Больше ничего этот протокол обещать не можетТогда ещё вопрос: Вот такая схемка code_1561.txt работает. Но у меня сомнение - будет ли это надёжно на всех машинах и виндах, или взятые мною 200ms канают ( ) только у меня? |
|||
карма: 0 |
| ||
файлы: 1 | code_1561.txt [1KB] [240] |
Ответов: 893
Рейтинг: 18
|
|||
Dilma, А как зделать так чтоб сервер или клиен распознавал какой тип информации он должен передать ?
|
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Андрей., не так делать надо. Если передается только строковая информация то можно например заканчивать передачу строки посылкой некоего спец символа и на стороне сервера накапливать все данные пока не пришел такой символ.
Byuik, очевидно отсылать передаваемый тип данных как один из параметров. Скажем в HTML протоколе любая передача данных выглядит так: Content-Length: <общая длина передаваемых данных>
Content-Type: <тип данных> <собственно данные> В нестроковых протоколах существуют свои форматы пакетов вида: 1 байт - тип данных в пакете
4 байта - размер данных N байт - собственно данные |
|||
карма: 27 |
|
Ответов: 893
Рейтинг: 18
|
|||
Dilma, Тоесть получается что компоненты клиент и сервер TCP способны распознать тип данных ?
Естли так то это расширяет возможности , чего и требуется. Андрей., Я когдато тоже столкнулся с приведённой выше проблемой, решенье пришло почти сразу code_1562.txt |
|||
карма: 0 |
| ||
файлы: 1 | code_1562.txt [1.3KB] [147] |
Ответов: 3851
Рейтинг: 159
|
|||
Dilma, я понял, спасибо.
Byuik, в моей проге передавать нужно больше 2-х сообщений, с обработкой - придётся делать буфер и всё такое. Спасибо. ЗЫ Dilma, в схеме Byuik-а code_1562.txt если нажать кнопку 2 раза, то проц грузится доверху - я писАл об этой проблеме ... просто напоминаю |
|||
карма: 0 |
|
Ответов: 893
Рейтинг: 18
|
|||
Андрей., а что ты хотел тыже пытаешся создать два одинаковых сокета Гыгыгыгы..... Яж надеялся что ты поймёш схему и не станеш дважды нажимать... code_1563.txt Теперь можеш нажимать сколько угодно |
|||
карма: 0 |
| ||
файлы: 1 | code_1563.txt [1.4KB] [166] |
Ответов: 893
Рейтинг: 18
|
|||
Вот исправил
|
|||
карма: 0 |
| ||
файлы: 4 | code_1564.txt [1.2KB] [181], code_1565.txt [1.2KB] [163], code_1566.txt [1.2KB] [176], code_1567.txt [1.2KB] [157] |
Ответов: 3851
Рейтинг: 159
|
|||
Byuik писал(а): а что ты хотел тыже пытаешся создать два одинаковых сокета Гыгыгыгы.....Именно так, и вместо onError оно мне проц напрягает |
|||
карма: 0 |
|
12