|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
Альтернативная передача файлов + чат.12.04.2010, 13:35. Показов 2010. Ответов 15
Метки нет (Все метки)
Надо поддерживать на одном порту:
1. Управление, причём, не всей системой, а только самой этой прогой. 2. Передачу: 2.1. Координат курсора. 2.2. Текста. 2.3. Файлов. 2.4. Скринов экрана. 2.5. Синхронного скринвидео. Учесть: 1. Файл может не влезать в пакет сетевого уровня. 2. Несколько клиентов одного сервера могут предавать файлы одновременно. 3. Клиент, или тот, кто сидит непосредственно за сервером, может, не дождавшись окончания передачи одного файла, дать команду на передачу следующего. 4. Клиент может получать файлы через сервер от других клиентов, в том числе. 5. Несколько клиентов могут направить файлы одному. 6. Файлы можно отправить и на сам сервер. Порезать один файл я могу. А как не потерять и не перепутать фрагменты сразу нескольких файлов? Добавлено через 43 секунды Кстати, как определить максимальный размер поля данных пакета протокола сетевого уровня?
0
|
|
| 12.04.2010, 13:35 | |
|
Ответы с готовыми решениями:
15
Чат в Delphi, передача файлов Чат локальной сети. Передача больших файлов Нужна альтернативная по качеству прога для воспроизведения аудио файлов |
|
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
|
|||
| 12.04.2010, 14:13 | |||
Есть сокеты, которые решают все эти проблемы за тебя. Если тебе нельзя юзать сокеты, и ты пытаешся напрямую работать с драйвером, то знаний для этой задачи у тебя явно маловато, и я не рекомендовал бы тебе за неё браться.
0
|
|||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||
| 14.04.2010, 05:23 [ТС] | ||||
|
Добавлено через 2 минуты
0
|
||||
|
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
|
|||
| 14.04.2010, 06:18 | |||
0
|
|||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 14.04.2010, 07:47 [ТС] | |||
|
Добавлено через 14 минут Ошибок при этом не происходит. Добавлено через 1 минуту Кстати, есть ли сокеты на gcc? И можно ли такую софтину написать вообще в кросплатформе?
0
|
|||
|
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
|
|
| 14.04.2010, 14:52 | |
|
У тебя очень особое воображение. У драйвера есть буфер куда он лепит все твои пакеты сам, без твоего участия, и сортирует тоже.
Не надо рассекать здесь мысью по древу, напиши клиент и сервер, и попробуй, а изыски своего воображения иди расскажи тому, кому они нужнее. Это у тебя проблема с сетью, не забыл еще?
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||
| 15.04.2010, 10:58 [ТС] | ||||
|
Я уже пробовал. А ты ещё нет? Только рассуждаешь о том, что сокет якобы берёт всё на себя и подобен трубе? Я послал 27 мегабайт, пришло 1500 байт в одном пакете, а остаток не дошел совсем.
Добавлено через 14 минут Кажется придумал вариант автоизмерения максимума. Максимум определяет сервер. Для этого он в в цикле наращивает длину пакета и отправляет себе со второго клиентского сокета на адрес 127.0.0.1, пока не получит меньше, чем отправил, а клиенты получают измеренное таким образом значение с сервера, в его пакете, идентифицирующем протокол. Есть лучшее решение? Каковы дыры этого решения? Каковы минимальные ограничения длины поля данных пакетов протоколов канального и сетевого уровня? Добавлено через 2 часа 6 минут Мои наброски по резке файлов, кадров, скриншотов: 1.Каждый пакет начинается кодом назначения. 2. Далее в пакетах, передаваемых сервером идёт код типа источника: 00h - клиент, FFh — сервер. 3. В транзитные пакеты сервер добавляет номер клиента-источника сразу после вида кода вида источника. 4. Каждый файл, скриншот, или скринвидео идёт в своей группе пакетов. Группы нумеруются восьми байтными номерами в пределах каждого вида трафика. Номер завершённой группы освобождается и передаётся последней группе того же вида. 5. Номер группы указывается в пакете после вида источника, а в транзитных пакетах после 6. Для каждой группы создаётся специальный растущий буфер приёма, привязанный к её номеру, виду трафика и к источнику. 7. Буфер группы скринвидео создаётся заново для каждого нового кадра. При этом только что принятый кадр отображается на экран, а использованный буфер сразу очищается. 8. Каждая группа начинается и завершается маркерным пакетом. 9. Во всех пакетах группы указываетсяы номер группы: 9.1. Если пакет отправлен с клинета на сервер - после кода назначения. 9.2. Если пакет отправлен с сервера клиенту - после кода вида источника. 9.3. Если пакет транзитный - после номера клиента-источника. 10.1.1. Далее в каждом пакете файловой группы, идёт внутри групповой восьми байтный номер пакета. Стартовый маркет имеет номер 0. 10.1.2. Стартовые маркеры файловых групп содеражат имя файла после номера пакета. 10.2.1. Далее в каждом пакете файловой группы, идёт внутри групповой восьми байтный номер пакета. Стартовый маркет имеет номер 0. 10.2.2. Стартовые маркеры скиншотовых групп содержат размеры растра после номера пакета. 10.3.1. Далее в каждом пакете группы скринвидео идёт номер пакета. 10.3.2. Каждый кадр скринвидео начинается и завершается отдельным маркером. 10.3.2.1. В группах скринвидео каждый пакет имеет восьми байтный внутрикадровый номер после номера группы. Номер стартового маркера 0. 10.3.2.2. Стартовые маркеры кадров содержат размеры кадра. Каковы дыры этого решения?
0
|
||||
|
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
|
|
| 15.04.2010, 12:20 | |
|
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
| 15.04.2010, 12:46 [ТС] | |||||||||||
|
Сервер:
0
|
|||||||||||
|
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
|
|
| 15.04.2010, 13:58 | |
|
Добавь код
Connections[i].SendBuff Connection.ResiveBuff + код ожидания, т.е. при каких условиях вызывается OnRead. Дeтализируй до уровня send/recv(wsasend) И не пиши с головы, дай реальный код. (FileRead, может таки ReadFile ?) А размер файла проще узнать через GetFileSize.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
| 16.04.2010, 06:20 [ТС] | ||||||
|
Добавлено через 2 минуты Добавлено через 3 минуты В linux через Подскажи, как серверный и клиентский сокеты зовут в эклипсе и в какой голове они валяются. Добавлено через 3 минуты
0
|
||||||
|
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
|
|||
| 16.04.2010, 12:20 | |||
1
|
|||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 16.04.2010, 12:26 [ТС] | ||
|
Это обработчик события, его наступление отслеживала винда.
Добавлено через 3 минуты
0
|
||
|
229 / 67 / 11
Регистрация: 02.06.2009
Сообщений: 280
|
||
| 19.04.2010, 14:11 | ||
|
http://msdn.microsoft.com/en-u... S.85).aspx Читай отсюда и до просветления. И поищи примеры в нете клиента и сервера на апи. Они на одну страницу умещаются.
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 20.04.2010, 06:02 [ТС] | |
|
Болэндовские компоненты TClientSocket и TServerSocket, или их аналоги (но аналогов я пока не видел).
0
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 23.04.2010, 22:44 | |
|
taras atavin, что-то вы действительно путаете.
Хотите использовать чистые сокеты? Почитайте Криса Касперски: http://www.insidepro.com/kk/006/006r.shtml Тут есть и описание функций и реализация простейших приложений. Компоненты TClientSocket, TServerSocket на данный момент уже не существуют в новых версиях IDE. В свободное пользование их переделанные варианты предоставляет Indy.
0
|
|
| 23.04.2010, 22:44 | |
|
Помогаю со студенческими работами здесь
16
Чат (передача месаг по интернету) Передача текста по радио каналу(чат) поиск файлов,чат и тд
Чат с отправкой файлов(Сокет) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|