Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Ошибку смотри Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 13:34 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbНе прокатило Вариант с получением IP на WinCe 6.0 не работает, хотя сам адрес определяется корректно автор gethostname(PCName, 30); h = gethostbyname(&PCName[0]); LocalIP = inet_ntoa (*(reinterpret_cast<in_addr *>(*(h->h_addr_list)))); MultiByteToWideChar(1251,0,LocalIP,-1,tbuf,30); ::MessageBoxW(NULL,(LPCWSTR)&tbuf, L"Connected", MB_ICONEXCLAMATION | MB_OK); Может действительно, проблема с кодировками? Как определить, в какой кодировке пришло сообщение в буфер?Во-первых, в структуре hostent функция gethostbyname() возвращает совсем не int, который ты пытаешься сконвертировать в строку через inet_ntoa(). Во вторых: "Note The gethostbyname function has been deprecated by the introduction of the https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms738520(v=vs.85).aspx] getaddrinfo function. Developers creating Windows Sockets 2 applications are urged to use the getaddrinfo function instead of gethostbyname ." З.Ы. Лично у меня всё прекрасно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 14:40 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbНе прокатило Вариант с получением IP на WinCe 6.0 не работает, хотя сам адрес определяется корректно пропущено... Может действительно, проблема с кодировками? Как определить, в какой кодировке пришло сообщение в буфер?Во-первых, в структуре hostent функция gethostbyname() возвращает совсем не int, который ты пытаешься сконвертировать в строку через inet_ntoa(). Во вторых: "Note The gethostbyname function has been deprecated by the introduction of the https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms738520(v=vs.85).aspx] getaddrinfo function. Developers creating Windows Sockets 2 applications are urged to use the getaddrinfo function instead of gethostbyname ." З.Ы. Лично у меня всё прекрасно работает. Забыл написать объявление Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 14:50 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2017, 15:01 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Embedded C++ не поддерживает потоки. Я в шоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 09:18 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbEmbedded C++ не поддерживает потоки. Я в шоке.До С++11 в языке вообще не было поддержки потоков, что не мешало писать многопоточные программы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 09:54 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbEmbedded C++ не поддерживает потоки. Я в шоке.Ни один компилятор не поддерживает потоки. Есть лишь библиотеки с классами-обёртками, которые используют API вызовы функций операционной системы для работы с потоками. Потоки работают исключительно на уровне операционной системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 10:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Разобрался, есть CreateThread ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 10:23 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbРазобрался, есть CreateThreadтогда лучше _beginthreadex(...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 11:12 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
CEMbтогда лучше _beginthreadex(...) уверен, что у топикстартера Windows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 11:27 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
ИзопропилCEMbтогда лучше _beginthreadex(...) уверен, что у топикстартера Windows? в смысле полноценная винда, а не CE на CE - CreateThread вроде как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 11:30 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbРазобрался, есть CreateThreadЭто, как раз, функция WinAPI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 11:48 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
rdb_devSergey_rbРазобрался, есть CreateThreadЭто, как раз, функция WinAPI. Работает на WinCE 5-7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 14:53 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Заметил странную работу сокетов - если сервер посылает 2 строку, то считывается строка, если несколько строк, то сначала сервер присылает 4 байта, а потом только донные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:21 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbЗаметил странную работу сокетов - если сервер посылает 2 строку , то считывается строка, если несколько строк, то сначала сервер присылает 4 байта, а потом только донные. если сервер посылает 1 строку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:22 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
TCP сокет не обещает выдавать данные получателю теми же порциями, которыми отправлено. Прийти может сколько угодно, а твоя задача принимать и складывать в буфер пока не получишь столько байт, сколько нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:24 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
т.е. надо делать 2 раза recv - первый, чтобы считать 4 байта и второй - чтобы получить данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:30 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TTCP сокет не обещает выдавать данные получателю теми же порциями, которыми отправлено. Прийти может сколько угодно, а твоя задача принимать и складывать в буфер пока не получишь столько байт, сколько нужно. Я проверял несколько раз - если одна строка, то она приходит целиком, если несколько, то сначала 4 байта, видимо это размер данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:32 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbт.е. надо делать 2 раза recv - первый, чтобы считать 4 байта и второй - чтобы получить данные Если первые 4 байта это размер данных, то сначала читаешь размер, выделяешь буфер этого размера и потом recv() до тех пор пока буфер не заполнишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:32 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbт.е. надо делать 2 раза recv - первый, чтобы считать 4 байта и второй - чтобы получить данные Если первые 4 байта это размер данных, то сначала читаешь размер, выделяешь буфер этого размера и потом recv() до тех пор пока буфер не заполнишь. Я делал буфер размером 10240, но порции он выдавал все равно по 1024 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:35 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbт.е. надо делать 2 раза recv - первый, чтобы считать 4 байта и второй - чтобы получить данные Если первые 4 байта это размер данных, то сначала читаешь размер, выделяешь буфер этого размера и потом recv() до тех пор пока буфер не заполнишь. 4 байте приходят не всегда, а только когда передается несколько строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 17:37 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbDima Tпропущено... Если первые 4 байта это размер данных, то сначала читаешь размер, выделяешь буфер этого размера и потом recv() до тех пор пока буфер не заполнишь. 4 байте приходят не всегда, а только когда передается несколько строк Если у тебя обмен по TCP то ты прежде чем что-то писать должен узнать протокол обмена и писать в соответствии с ним. Бери документацию на свой сервер и читай. Эвристический анализ в таких вопросах пустая трата времени. TCP это поток, который приходит кусками данных, размеры кусков зависят передающей среды, тут нет блоков/сообщений, есть куски, которые могут содержать как целое сообщение так и 2, 5 и 17.3 сообщения. Собирать сообщения из кусков твоя задача, как разработчика, а чтобы собирать надо знать как, т.е. протокол обмена. Единственное что гарантирует TCP - это то что данные придут в порядке отправления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 18:56 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima T, Не поможет, пациент не догоняет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 00:05 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Dima TSergey_rbпропущено... 4 байте приходят не всегда, а только когда передается несколько строк Если у тебя обмен по TCP то ты прежде чем что-то писать должен узнать протокол обмена и писать в соответствии с ним. Бери документацию на свой сервер и читай. Эвристический анализ в таких вопросах пустая трата времени. TCP это поток, который приходит кусками данных, размеры кусков зависят передающей среды, тут нет блоков/сообщений, есть куски, которые могут содержать как целое сообщение так и 2, 5 и 17.3 сообщения. Собирать сообщения из кусков твоя задача, как разработчика, а чтобы собирать надо знать как, т.е. протокол обмена. Единственное что гарантирует TCP - это то что данные придут в порядке отправления. С протоколом все понятно - сервер написан на Делфи и передает StringList. Клиент, работавший на Дельфи, все прекрасно передает и принимает. К сожалению, на С++ нет аналогичного класса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 08:50 |
|
||
|
Какой извращенец писал MessageBoxW?
|
|||
|---|---|---|---|
|
#18+
Sergey_rbС протоколом все понятно - сервер написан на Делфи и передает StringList. Клиент, работавший на Дельфи, все прекрасно передает и принимает. К сожалению, на С++ нет аналогичного класса... Читай описаловку на этот StringList, возможно там описаны форматы обмена. Или в форуме по дельфям спроси. Потом пиши свой класс на С++. Может в форуме по дельфям готовый аналог для С++ подскажут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 09:04 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39479878&tid=2018126]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 163ms |

| 0 / 0 |
