|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||||||||||||||||||||||||||||||||||||
Сокеты: после вызова send программа зависает на функции recv25.08.2014, 16:18. Показов 7801. Ответов 21
Метки нет (Все метки)
Извеняюсь за такое назание темы, но уже перепробовал 100 вариантов и постоянно выкидывает данное предупреждение, уже и не знаю что блин написать))
Проблема в следующем: Изучаю сокеты и столкнулся с небольшой проблемой, в данном коде я соеденяюсь с локкал хостом на порту 2222 дабы , и прописую данный порт в прокси в браузере, дабы отлавливать его заголовки, проблема в следующем, 1) после использования функции send - код зависает над функцией recv и не двигается с места, немогу понять почему 2) если убрать send то всё работает нормально, но recv постоянно возвращает заголовки отправлнные в первый раз не реагируя на те сайты которые открываются в браузере в дальнёйшем. main.cpp
BaseNet.h
0
|
||||||||||||||||||||||||||||||||||||
| 25.08.2014, 16:18 | |
|
Ответы с готовыми решениями:
21
Сокеты, send(), recv() Recv зависает СОКЕТЫ с++ Функции puts(), send(), recv() и какая-то дичь |
|
|
|
| 25.08.2014, 16:29 | |
|
Порт может быть закрыт, файерволлом например.
0
|
|
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||
| 25.08.2014, 16:36 | ||
|
0
|
||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|||
| 25.08.2014, 16:45 [ТС] | |||
|
0
|
|||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
| 25.08.2014, 16:48 | |
|
0
|
|
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||
| 25.08.2014, 17:33 [ТС] | ||
|
0
|
||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
| 25.08.2014, 17:41 | |
|
0
|
|
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
| 25.08.2014, 17:53 [ТС] | |
|
0
|
|
|
Ушел с форума
|
||||
| 25.08.2014, 22:25 | ||||
RecvData читает данные из клиентского сокета и SendData тут же пытается отправить их обратно. Для клиента это выглядит так, как будто сервер выполнил "эхо-ответ". Для HTTP это, мягко говоря, странно. Про то, что здесь даже не проверяется количество принятых байт, как и вообще ошибки, я вообще молчу. В данном коде только один Accept.
1
|
||||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
| 26.08.2014, 00:45 [ТС] | |
|
Убежденный, я короче поместил Accept в цыкл и всё заработало, насчёт эхо ответа, я просто хотел проверить как оно работает ну и ненашол ничего другова что можно отправить)) а зачем проверять количество принятых байт?
0
|
|
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||
| 26.08.2014, 09:07 | ||
|
собвственно что получется, Вы передаете например 512 байт, кусками по 100 байт, т.е сначала вычитаем 100, потом еще 100, и еще 3 раза по 100, и в последний раз вычитаем 12....вот надо смотреть сколько прочитали, что бы склеить результат, или понять что мы все дочитали....или если не все, выполнить чтение еще необходимое кол-во раз
2
|
||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||
| 27.08.2014, 17:53 [ТС] | ||
|
0
|
||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|
| 27.08.2014, 22:59 | |
|
1ый вариант, знать это априори
2) в конце последовательности иметь уникальную посл.байт, что бы понять что все пришло Добавлено через 33 секунды 3) в передаваемой посл.байт отвести байт задающий длину последовательности
0
|
|
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||||||
| 28.08.2014, 18:50 [ТС] | ||||||
|
Столкнулся со следующей проблемой, несрабатывает функция дисконект, тоесть браузер уже получил все заголовки и html код, но серовно остаётся в стадии загрузки страницы, как ему дат понять что уже всё загрузилось и пора отключатся?
0
|
||||||
|
Ушел с форума
|
|
| 28.08.2014, 22:30 | |
|
0
|
|
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||||||
| 29.08.2014, 11:53 [ТС] | ||||||
|
В общем, я сделал проверки на ошибки, постоянно когда после одного хоста сокет конектится к другому вылетает лишбка 10056, пробовал каждый раз при смене домена отключать и заново создавать сокет, но тогда он посоянно выкидывает ошибку 10093, как нужно сделать правильно?
0
|
||||||
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
|||
| 29.08.2014, 12:00 | |||
|
mh-coder, я надеюсь Вы понимаете что ф-ции accept, сonnect, recv могуть быть блокирующими, и вся работа может остановится
Добавлено через 3 минуты
0
|
|||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
| 29.08.2014, 12:18 [ТС] | |
|
ну а как мне тогда отключится от одного севера и подключится к другому чтобы не возникало ошибок?
0
|
|
|
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
|
||
| 29.08.2014, 15:54 | ||
|
0
|
||
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
| 29.08.2014, 22:04 [ТС] | |
|
как установить время ожидания получения данных и время подключения для сокета? читал мсдн, там херь какая-то написана)) на подобии
Socket->ReceiveTimeout = 1000; Добавлено через 10 минут ...
0
|
|
| 29.08.2014, 22:04 | |
|
Помогаю со студенческими работами здесь
20
После вызова рекурсивной функции программа перестаёт работать Сервер продолжает получать пустые сообщения после вызова метода Socket.Send send/recv send(.);recv(.);
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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. Пошагово создадим проект для загрузки изображения. . .
|