|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.09.2011, 20:47 | #1 |
Новичок
Джуниор
Регистрация: 30.09.2009
Сообщений: 2
|
Не получается принять TCP/IP пакет более 2048 байт. Visual C++
Использую MFC. Имеется UDP-сокет (CAsyncSocket). При приходе пакета длиной более 2048 байт функция ReceiveFrom возвращает SOCKET_ERROR, а GetLastError при этом определяет, что ошибка следующая: WSAEMSGSIZE (10040) - "A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram into was smaller than the datagram itself".
Установка опции сокета int RcvBufSize = 0x3000; pSocket->SetSockOpt(SO_RCVBUF, &RcvBufSize, sizeof(RcvBufSize), SOL_SOCKET) не помогает (если ничего не устанавливать, то по умолчанию 8192 байта). |
25.09.2011, 11:28 | #2 | |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
Цитата:
|
|
27.09.2011, 09:28 | #3 |
Пользователь
Регистрация: 11.10.2009
Сообщений: 79
|
попробуйте разбить пакет по 1024 байта и принимать в массив, а потом уже склеить и что-то с ним делать.
|
28.09.2011, 23:00 | #4 |
Новичок
Джуниор
Регистрация: 30.09.2009
Сообщений: 2
|
Проблема решилась - откровенно ступил, не заметив сразу что буфер для приёма данных объявлен длиной 2048 байта.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не получается создать удалённое сетевое подключение между двумя компами по протоколу TCP | anyx | Свободное общение | 3 | 31.05.2011 20:55 |
Как принять пакет с сервера | Federal | Работа с сетью в Delphi | 1 | 31.05.2010 09:02 |
Создать tcp/ip пакет | heart | Помощь студентам | 6 | 12.03.2009 16:04 |
Hello, World! размером не более 46 байт | romark | Помощь студентам | 4 | 24.12.2008 11:27 |
Отправить , а потом принять пакет. | casper123 | Работа с сетью в Delphi | 3 | 16.08.2008 02:56 |