Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

WinSock и типы данных

1.8K
07 августа 2006 года
Валериус
190 / / 14.07.2006
Есть такая вот ситуация: используется компонент WinSock и через протокол UPD передаётся строка. Проблема в том, что принимающая программа не понимает что ей пришло и выдаёт лишь кучку вопросительных знаков (кстати, воп.знаков столько же, сколько символов в отправленной строке). Вряд ли это несоответствие кодировок, ведь передаю строку из латиницы и цифр. Что же с этим счастьем делать? Переменная, в которую записываю пришедшие данные, заранее определена как String
15K
08 августа 2006 года
KAN
40 / / 08.08.2006
UDP не гарантирует доставку данных, ты уверен, что получил то, что отправил? :) Мне кажется проще использовать TCP.
Попробуй вместе с данными отправлять какую-нить контрольную сумму, которая будет вычисляться как сумма ascii кодов всех символов строки, и при получении сверять. Типа:
summ=0
for x=1 to len(stroka)
summ=summ + asc(mid$(stroka,x,1))
next x
stroka=summ & "|" & stroka
winsock1.senddata stroka

а при получении выделяем сумму из строки:
q= InStr(1, сstroka, "|") 'ищем первый символ разделителя
summ=val(mid$(сstroka,1,q-1))
сstroka=mid$(сstroka,q+1)
'такая же проверка суммы
сsumm=0
for x=1 to len(cstroka)
сsumm=сsumm + asc(mid$(сstroka,x,1))
next x
'и сверка двух сумм
тогда будешь точно уверен, что получил, то, что отправил
1.8K
08 августа 2006 года
Валериус
190 / / 14.07.2006
Спасибо большое за столь подробное объединение, но всё куда проще. Получаем данные такой вот строкой:
updConnection.GetData strBuff, vbString
Вот именно про последнее, про vbString я до некоторых пор не знал :) Теперь всё работает, всё красиво.
А насчёт TCP, то ни чуть не проще, ведь надо прописывать разные действия для сервера и для клиента, а UDP избавляет от этого. Тем более, что я пишу всего-лишь сетевуй игрушку и особой надёжности тут не требуется.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог