|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
Плохо работает recv08.05.2019, 17:34. Показов 3213. Ответов 33
Метки нет (Все метки)
Не кто не сталкивался с проблемой. recv читает первый раз хорошо все данные приходят как надо, на второй раз он читает в буфер 0, 0 читает столько сколько указано в 3 параметре и это длится бесконечно, то есть сокет не блокируется, при этом "Сервер" не чего не отправляет стоит на бреакпоинте.
0
|
|
| 08.05.2019, 17:34 | |
|
Ответы с готовыми решениями:
33
Интернет работает, но Chrome и IE не открывают сайты. Firefox работает, но плохо Всего одна из страниц сайта плохо работает в IE и Мозилле (абра-кадабра).В Опере все работает.
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||
| 15.05.2019, 14:20 | ||||
|
Добавлено через 2 минуты Добавлено через 15 минут
0
|
||||
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
| 15.05.2019, 17:41 [ТС] | |
|
Сделал отдельно клиента и сервера ,все работает. Ничего не понимаю
0
|
|
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
| 15.05.2019, 17:57 [ТС] | |
|
Хотя нет, Ломается. oleg-m1973, если не сложно не могли бы попробовать у себя. У меня даже на локальном компьютере, если стоит сервер и клиент, то не так работает.
0
|
|
|
153 / 148 / 66
Регистрация: 20.02.2014
Сообщений: 556
|
|
| 15.05.2019, 18:23 | |
|
Sierra26, попробую еще раз повторить: внимательно разберись в размером передаваемой структуры - размер в цикле у тебя вычитается и в итоге у тебя в сенде просто идет 0.
0
|
|
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
| 15.05.2019, 19:16 [ТС] | |
|
Вованя, где он вычитается. Ничего не понял. Можете показать участок кода
0
|
|
|
153 / 148 / 66
Регистрация: 20.02.2014
Сообщений: 556
|
|
| 15.05.2019, 20:27 | |
|
Sierra26, в функции Send()
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 15.05.2019, 21:32 | ||
|
1
|
||
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
| 16.05.2019, 11:26 [ТС] | |
|
Проблема все таки в клиенте. И у меня возник вопрос? В каких случаях разблокируется функция recv. Мое мнение было, что когда придут данные >= указанных в 3 параметре функции recv, но оно оказалась ошибочным!
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 16.05.2019, 11:27 | |
|
0
|
|
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
| 16.05.2019, 11:29 [ТС] | |
|
вот что вычитал: "Дело в том, что recv гарантирует лишь то,
что в случае успеха будет прочитано от 1 до sizeof(buffer) байт. В данном случае размер буфера для recv - 4 байта, но прочесть она может за один вызов и три байта, и два, и один. Так что начать нужно с этого." Кстати говоря, это вообще наитипичнейшая ошибка всех, кто учит работу в сетях." Ссылка на форум Функция recv не разблокируется после отправки сообщения в канал
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 16.05.2019, 11:38 | ||
|
В цикле: делаешь select/poll/WSaPoll на таймаут ~100ms, если данных нет - снова если данные пришли, запрашиваешь размер ::ioctlsocket(sock, FIONREAD, &dwRead) если dwRead == 0 , то сервер разорвал коннект, можно закрывать сокет делаешь n = recv(....., dwRead), усли n < dwRead - коннект разорван...
0
|
||
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
||||||
| 16.05.2019, 11:50 [ТС] | ||||||
|
да проблема оказалась в том ,что recv гарантирует лишь то, что в случае успеха будет прочитано от 1 до sizeof(buffer) байт. Решил проблему написание вот такой функции. Может быть кому-нибудь пригодится:
0
|
||||||
|
7 / 7 / 3
Регистрация: 04.06.2015
Сообщений: 189
|
|
| 16.05.2019, 13:00 [ТС] | |
|
else
* * * * * * int k = 6; Это для отладки. int nByte = recv(s, &buf[nSumByte], len - nSumByte, flags); flags сюда надо
0
|
|
| 16.05.2019, 13:00 | |
|
Не работает или плохо работает озу ! Плохо работает Wi Fi Плохо работает роутер Плохо работает include! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|