|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
Socket: Client & Server11.05.2010, 22:15. Показов 16772. Ответов 86
Метки нет (Все метки)
Нужен квалифицированный совет!
Существует устройство, на котором стоит ОС Linux. Это устройство соединено с ПК с Win. Это устройство с ОС Линукс должно отдавать постоянно данные на ПК, но при помощи приложения на ПК оно еще должно управляться. Используя сокеты, написан сервер на "С" под Линукс и Клиент на "С++" под Win на ПК. Но чувствую что этого недостаточно. Как я понял, сервер не может осуществлять постоянную передачу данных, кроме ответных сообщений на запрос от клиента. Если не прав - поправьте меня. Т.е., как я догадываюсь, нужно реализовывать на обоих машинах и сервер и клиент? Клиент под Линукс нужен чтобы постоянно отправлять данные от устройства серверу на ПК, а сервер ПК будет подтверждать прием данных, сервер под линукс нужен чтобы принимать запросы от клиента из Win (ПК) на упраление (изменение параметров устройства). Правильные мысли? Или можно сделать проще?
1
|
|
| 11.05.2010, 22:15 | |
|
Ответы с готовыми решениями:
86
FTP-client на Socket API Local chat, C++ server JAVA client Server&Client Socket, ошибка подключения |
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
||||||
| 15.05.2010, 15:17 [ТС] | ||||||
|
Пытаюсь на сервере сделать так, чтобы в while сделать проверку на подключение клиента, т.е. чтобы на accept не было блокировки. Пытаюсь сделать через select, т.е.:
Добавлено через 22 минуты Извините за попрос, ошибся сокетом, который добавлял в множество, добавлял дескриптор сокета, который образовывался в accept, а должен был, который в listen. Все равно спасибо
0
|
||||||
|
|
|
| 15.05.2010, 15:42 | |
|
Ответ, как мне кажется, в том, что в select'е у тебя указано бесконечное время, а потому res всегла будет равен единице (потому как в этом случае из select'а выйдем только тогда, когда в сокет постучится клиент)
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
||
| 15.05.2010, 23:48 [ТС] | ||
|
0
|
||
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 16.05.2010, 17:32 [ТС] | |
|
Очередной вопрос:
если надо отправить на сервер файл с настройками размером несколько мб, необходимо ли его нарезать, или просто считать в буфер такого размера, и этот буфер отправить на сервак? Необходима спец. подготовка этого файла?
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
||
| 16.05.2010, 18:37 [ТС] | ||
|
0
|
||
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 16.05.2010, 18:45 [ТС] | |
|
fasked, СПАСИБО!
0
|
|
|
|
||
| 16.05.2010, 19:15 | ||
|
0
|
||
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 16.05.2010, 19:42 [ТС] | |
|
А какой максимальный блок данных можно передать за однократную передачу?
0
|
|
|
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
|
|
| 16.05.2010, 19:46 | |
|
А по чему бы не использовать средства NetBios'а. Очень удобно: нужно просто знать имя ПК в DNS и номер соединения (по умолчанию - 1). А для синхронизации использовать средства распараллеливания процессов MPI или PVI (параллельное программирование, легко можно найти ссылки). Для несложных задач вполне хватит.
Пример использования в тхт
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 16.05.2010, 20:14 [ТС] | |
|
0
|
|
|
98 / 94 / 16
Регистрация: 16.05.2010
Сообщений: 310
|
|
| 16.05.2010, 20:18 | |
|
Не знаю. но почему бы не попробовать, если что использовать аналоги библиотек для линукса (для винды это nd, ncmd.h).
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|||||||||||
| 17.05.2010, 12:55 [ТС] | |||||||||||
|
Непонятки при передачи файла.
В клиенте открываю файл, нарезаю на куски (N-число кусков) к примеру по 102400 байт, отслеживаю остаток. В цикле отпавляю по кускам. Код клиента:
Код сервера:
Добавлено через 1 час 42 минуты Обнаружил, что, к примеру, отправляя за раз 100 кб, на приемной стороне за один раз можно принять 10 кб, а за вторую итерацию приема - оставшиеся 90 кб. Но назрел другой вопрос: еще не отправляя с клиента, а принимая на сервере, длина сообщения неотправленных данных !будет равна какому-то значению, что означает , что в очереди что-то осталось... Во второй итерации приема будет уже -1. А как обнулить эту очередь? Есть какие-нибудь операторы обнуления? чтобы и в первый раз выводилось -1 ? Добавлено через 1 час 29 минут Проведя ряд экспериментов, выяснил, что число входных байт, получаемое вначале, сигнализировало о том, что за recv из другой функции я принял не все данные. Вот и весь фокус оказался))
0
|
|||||||||||
|
|
||
| 17.05.2010, 12:57 | ||
|
0
|
||
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
||
| 17.05.2010, 13:19 [ТС] | ||
|
А что, подобные сообщения настолько перегружают мозг "форумчан", что стоит такое спрашивать? Тут же все просто, нет желания отвечать на обозначенные проблемы или просто не в курсе дел - берешь и пропускаешь это сообщения...
0
|
||
|
|
|
| 17.05.2010, 14:43 | |
|
Нет, не перегружают. Только у многих к подобным вопросам отношение такое: если видят, что человек действительно сам пытается в чём-то разобраться, то если могут, то помогут. А вот когда видно, что человек на каждый чих у всех всё спрашивает, то помогать таким людям нет никакого желания. Т.е. в такой ситуации ты оказываешься сам себе злобный буратино
0
|
|
|
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
|
|
| 17.05.2010, 14:50 [ТС] | |
|
0
|
|
|
|
||||||||||||||||||||||||||
| 17.05.2010, 18:31 | ||||||||||||||||||||||||||
|
Не знаю в чем у тебя проблема, но я обычно отправлял файлы так:
Отправитель. 1. Узнаем размер файла. 2. Вычисляем количество полных чтений в буфер
С приемником же все попроще, так как функция recv возвращает количество принятых байт - поступаем следующим образом
1
|
||||||||||||||||||||||||||
| 17.05.2010, 18:31 | |
|
Nodejs net socket server and android socket client Windows socket server python + socket client js Socket Android Client and Java Socket Server
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|