|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.01.2011, 13:19 | #1 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 22
|
Передача файла по локальной сети
Господа вот такой вопрос! Нужно передавать файлы по сети! При чём файлы любого формата! Переодичность передачи высокая! Поэтому решил попробовать через UDP, но оказалось, что этот клиент ограничен размером файла не более 8 Кб, а мне нужно передавать файлы размером до 1 Мб.
Вот мой код в Visual C#: Код:
|
28.01.2011, 13:45 | #2 | ||
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Цитата:
Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
||
28.01.2011, 14:49 | #3 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 22
|
ТСР Это конечно хорошо, но куда девать лишний трафик на соединение и подтверждение. А если передача идёт с 10 компьютеров на один с частотой каждые 2 секунды, что тогда ! И при этом надо чтобы это немешало пользователям лазить по сети?!
|
28.01.2011, 15:00 | #4 | ||
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Лишнего трафика там не так и много (не более 2-3%), но если хочется поднимать функции TCP (подтвержение доставки, повторная передача потерь, сборка переставленных пакетов, выбор размера окна передачи) руками на основе UDP, то почему бы и нет, времени это много не займет, месяца за два справитесь.
Или у вас нет необходимости передавать файлы целыми и невредимымы, а более важно доставить информацию вовремя? Например, вы передаёте потоковое видео в реальном режиме времени. Тогда выбор UDP обоснован, осталось научиться им пользоваться. Цитата:
Цитата:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
||
28.01.2011, 15:23 | #5 |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
> куда девать лишний трафик на соединение и подтверждение
Этот же самый траффик (это теоретически, а практически - еще больший) ты потеряешь на организации собственного, т.е. прикладного квитирования доставки, если требуется обеспечить целостность доставки. |
28.01.2011, 15:50 | #6 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 22
|
Ладно если опустить проблему траффика! А как принимать данные по ТСР сразу с нескольких компьютеров! Разве можно одновременно прослушивать сразу несколько сокетов?! Или есть хитрости, при создании соединения ТСР?
|
28.01.2011, 15:54 | #7 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 22
|
И вы знаете не где не нашёл примера для передачи файлов через ТСР!
Сообщения,да а файлы нет!? Как преобразовываются данные!? |
28.01.2011, 16:31 | #8 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
ТСП-шный слушающий сокет создаёт новый сокет для каджого нового подключившегося клиента, так что одного слушающего сокета достаточно. Так работают веб-серверы, например. Слушают на 80 порту одним сокетом, а каждое новое соединение от клиента на этот порт порождает новый сокет, который используют для общения с этим и только этим клиентом.
Файл — это просто длинное сообщение, не?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
28.01.2011, 17:50 | #9 |
Пользователь
Регистрация: 01.09.2010
Сообщений: 22
|
Так а если файлы придут одновременно, то вовремя получения порт будет занят и небудет слушать остальные поступающие сообщения!? А на сервере всё организовано гораздо сложнее! И тем более закодировать текст в байты для передачи это одно, а файл любого формата это совсем другие методы, посмотрите на мой текст в начале. Если бы всё было так просто, то я бы не спрашивал!
|
28.01.2011, 17:57 | #10 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Ничего там не будет занято, и ничего особо сложного на сервере нет.
Объясните, чем поток байт, сформированный из сообщения, отличается от потока байт, сформированного из файла? Это другие байты? Вы постоянно пугаете сами себя совершенно непонятно откуда взятыми ужосами. А надо просто взять и сделать. Всё там будет отлично работать и ничего сложного там нет.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передача данных по локальной сети | zzzzz | Работа с сетью в Delphi | 2 | 02.07.2011 19:24 |
передача данных по локальной сети | DinamoBrynsk | Помощь студентам | 2 | 22.11.2010 22:17 |
Создание файла в локальной сети | yulia | Общие вопросы Delphi | 4 | 19.08.2009 15:28 |
Передача файлов по локальной сети(Indy) | Biowulf86 | Помощь студентам | 1 | 08.05.2008 13:08 |