Форум: "Начинающим";
Текущий архив: 2009.01.04;
Скачать: [xml.tar.bz2];
ВнизTidTCPClient и мнгозадачность Найти похожие ветки
← →
Чудак (2008-11-19 23:29) [0]Делаю клиента на TidTCPClient
нужно организовать отновременную передачу данных(файлы) и сообщений
Это возможно? и Как это организовать?
файлы отслылаю в потоке по TidTCPClient.writestream
скорее у меня не правильная оранизация пересылки данных, наставте на путь истинный
← →
DVM © (2008-11-20 00:09) [1]
> Делаю клиента на TidTCPClient
Клиента к чему?
> Это возможно?
Возможно
> Как это организовать?
Данные надо передавать порциями. Каждая такая порция должна содержать информацию о типе данных, размере и.т.д. ну и сами данные. Таким образом можно будет передавать все одним потоком. На принимающем конце разгребать что куда.
← →
Чудак (2008-11-20 00:22) [2]Клиент с своему серверу
прием идет atread.connection.readl() и по нему определяю что куда
передаю так
TidTCPClient.writeln(это сообщение)
TidTCPClient.writeln(само сообщение)
в потоке передача файла
TidTCPClient.writeln(это файл)
TidTCPClient.writestream(сам файл)
так нифига не работает
Куда копать?
← →
Германн © (2008-11-20 01:23) [3]
> Делаю клиента
А сервер тоже твой? Т.е. тобой сделанный?
← →
Eraser © (2008-11-20 03:02) [4]> [0] Чудак (19.11.08 23:29)
> Как это организовать?
лучше это реализовать отдельными потоками, никак не связанными друг с другом - в каждом потоке создается экземпляр TidTCPClient и работает с сервером.
← →
Чудак (2008-11-20 13:15) [5]
> Германн © (20.11.08 01:23) [3]
>
> > Делаю клиента
>
> А сервер тоже твой? Т.е. тобой сделанный?
Да мой
И в зависимости от сообщения происходит определеное действие
т.е. TidTCPServer.readln() и выбираем что делаем!
> Eraser © (20.11.08 03:02) [4]
> > [0] Чудак (19.11.08 23:29)
>
>
> > Как это организовать?
>
> лучше это реализовать отдельными потоками, никак не связанными
> друг с другом - в каждом потоке создается экземпляр TidTCPClient
> и работает с сервером.
т.е. один поток со своими коннектами на сообщения а второй на передачу файлов?
т.е. получается у нас будет несколько TidTCPClient ов?
А может тогда проще два TidTCPClient"а бросит на форму и ими орудовать?
А на сервере из-за этого код не придется усложнять?
← →
Сергей М. © (2008-11-20 13:25) [6]
> может тогда проще два TidTCPClient"а бросит на форму и ими
> орудовать?
Для сервера это будет два независимых клиентских соединения.
> на сервере из-за этого код не придется усложнять?
>
см. выше, со всеми вытекающими последствиями.
Ну и с требованием "одновременности" на стороне клиента придется распрощаться.
Максимум чего при этом можно добиться - "попеременность".
← →
Чудак (2008-11-20 13:58) [7]Как я понял:
1. одномременно посылась сообщения и файлы с клиента нельзя
2. Чтобы это организовать нужно на клиенте 2 компонента TidTCPClient и на сервере тоже 2 компонента TidTCPServer, один для сообщений второй для файлов???
3. А если отправку файла организовать дмумя потоками Ttread-это ускорит скорость передачи файла по сети?
← →
KilkennyCat © (2008-11-20 14:10) [8]
> если отправку файла организовать дмумя потоками Ttread-это
> ускорит скорость передачи файла по сети?
Конечно. Именно так сделали из 10 МБ сети 100 МБ. А потом подумали, и еще потоков насоздавали, и теперь гигабит.
← →
Сергей М. © (2008-11-20 14:49) [9]
> Чудак (20.11.08 13:58) [7]
> 1.
Попеременно есть частный случай одновременно.
> 2.
Два TidTCPClient потребуются для двух независимых соединений, каждое из которых организовано в отдельном кодовом потоке
В любом случае достаточно одного TidTCPServer.
← →
Сергей М. © (2008-11-20 14:53) [10]
> Чудак (20.11.08 13:58) [7]
> 3.
Нет.
← →
Чудак (2008-11-20 14:58) [11]По поводу 3 мнения разошлись
3. А если отправку файла организовать дмумя потоками Ttread-это ускорит скорость передачи файла по сети?
Вопрос как ускорить передачу файла по сети????
← →
Сергей М. © (2008-11-20 14:59) [12]
> По поводу 3 мнения разошлись
Строго наоборот)
← →
Чудак (2008-11-20 15:05) [13]А можно как нибудь програмно ускорить передачу файла по сети????
← →
Сергей М. © (2008-11-20 15:08) [14]Можно. Сожми файл и передавай/принимай его сжатым - размер сжатого файла обычно меньше несжатого, значит при прочих равных условиях он будет передан/принят быстрей.
← →
Чудак (2008-11-20 18:05) [15]Возможно это глупый вопрос, но:
А зачем тогда менеджежы закачек качают в несколько потоков???
или протокол шттп не использует тсп соедениние:)???
← →
Сергей М. © (2008-11-20 19:35) [16]
> зачем тогда менеджежы закачек качают в несколько потоков?
Для параллельной "закачки" они это делают.
> протокол шттп не использует тсп соедениние:)?
Использует.
← →
sniknik © (2008-11-20 19:46) [17]они не только в разных потоках, они еще и с разных зеркал могут...
сервера часто ограничивают скорость одного потока, в этом случае много поточное скачивание действительно даст прирост скорости... (сумма отдельных, но не больше общей ширины канала)
но это просекли, и сервера еще стали и количество потоков с одного IP ограничивать... типа а фиг вам.
теперь ждем пока менеджеры научатся каждый поток через отдельный прокси со своим IP пускать...
:о)
← →
Чудак (2008-11-20 20:09) [18]Всем Спасибо большое, вразумили
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.01.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c