CSmania.RU

Универсальный русскоязычный портал о Counter-Strike
Предыдущее посещение: Вт дек 23, 2008 4:11 am Текущее время: Вт дек 23, 2008 4:11 am

Часовой пояс: UTC




 [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: И снова я, получаем данные с сурс серверов
СообщениеДобавлено: Пт дек 19, 2008 11:16 pm 
Не в сети
Сержант
Сержант
Аватара пользователя

Зарегистрирован: Пн апр 02, 2007 12:01 pm
Сообщения: 83
И снова я с проблемами. Собственно проблема в том что данные приходят, но в итоге я получаю только название сервера, как уже не пытался, выбить получаеся только название сервера, а ведь дальше еще больше string'ов, карта, папка игры и тд.

Вот код:
Код:
        public string ServerInfo()
        {
            this.socket.SendTo(queryMagic, this.endpoint); // Отсылаем FF FF FF FF TSource Engine Query
            int received = this.socket.ReceiveFrom(this.data, ref this.endpoint); // Принимаем данные
            string str3 = System.Text.Encoding.Default.GetString(this.data, 0, received); // выдернули название сервера, и все :(
            return str3;
        }

_________________
ИзображениеИзображениеGarry's Mod 10 gift!
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова я, получаем данные с сурс серверов
СообщениеДобавлено: Сб дек 20, 2008 12:40 am 
Не в сети
Капитан
Капитан

Зарегистрирован: Пн мар 17, 2008 10:13 am
Сообщения: 270
Откуда: такие как я?
эмммм.. скорее всего это из за '\x00' каторое стоит после названия сервера
на си такая же проблема и решается просто, unsigned char*
ещё можно вручную из байт в стринг конвертнуть, без использования энкодинга

_________________
С вопросами сюда
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова я, получаем данные с сурс серверов
СообщениеДобавлено: Сб дек 20, 2008 7:19 am 
Не в сети
VIP
VIP

Зарегистрирован: Чт фев 15, 2007 7:23 pm
Сообщения: 746
Откуда: москва хорошова мневники
Megalan, у самого была подобная хрень
проблема заключается в байте x00

посмотри код стим листа, там показано как работать с нулями и как разделять информацию используя в качестве разделителя ноль

парвда у меня код на C++

_________________
Для проекта DCS требуются забаненые Vac аккаунты
на аккаунте должна быть хотя бы одна игра на движке Half Life1.
аккаунт нужен в дар, так как он предназначен для совместного использования всеми пользователями Ксмании.

Разработка CS Chat Monitor
Сканер игровых серверов
CF Toolbox 1.0.10 RUS
WinBSPC RUS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова я, получаем данные с сурс серверов
СообщениеДобавлено: Сб дек 20, 2008 12:05 pm 
Не в сети
Сержант
Сержант
Аватара пользователя

Зарегистрирован: Пн апр 02, 2007 12:01 pm
Сообщения: 83
к сожалению ничего полезного в последних 2 постах для себя не увидел. В коде steam list используются те же unsigned'ы, которых в c# нет :(

_________________
ИзображениеИзображениеGarry's Mod 10 gift!
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова я, получаем данные с сурс серверов
СообщениеДобавлено: Сб дек 20, 2008 12:31 pm 
Не в сети
Капитан
Капитан

Зарегистрирован: Пн мар 17, 2008 10:13 am
Сообщения: 270
Откуда: такие как я?
Megalan писал(а):
к сожалению ничего полезного в последних 2 постах для себя не увидел. В коде steam list используются те же unsigned'ы, которых в c# нет :(

не используй System.Text.Encoding
папробуй типа
Код:
string str = "";
for(int i = 0; i > len(bytes);i++) {
  //tak
  str[i] = chr(bytes[i]);
  //ili tak
  str = str + chr(bytes[i]);
}

_________________
С вопросами сюда
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова я, получаем данные с сурс серверов
СообщениеДобавлено: Сб дек 20, 2008 12:42 pm 
Не в сети
Сержант
Сержант
Аватара пользователя

Зарегистрирован: Пн апр 02, 2007 12:01 pm
Сообщения: 83
eldest писал(а):
Megalan писал(а):
к сожалению ничего полезного в последних 2 постах для себя не увидел. В коде steam list используются те же unsigned'ы, которых в c# нет :(

не используй System.Text.Encoding
папробуй типа
Код:
string str = "";
for(int i = 0; i > len(bytes);i++) {
  //tak
  str[i] = chr(bytes[i]);
  //ili tak
  str = str + chr(bytes[i]);
}


как я не изголялся не получилось с этим кодом.

Зато я смог получить данные в hex

Код:
FF-FF-FF-FF-49-07-56-49-43-54-4F-52-49-41-20-43-52-55-45-4E-54-41-20-5B-52-55-53-53-49-41-2D-4D-4F-53-43-4F-57-5D-00-64-6D-5F-6C-6F-73-74-76-69-6C-6C-61-67-65-5F-6E-6F-5F-72-70-67-00-68-6C-32-6D-70-00-54-65-61-6D-20-44-65-61-74-68-6D-61-74-63-68-00-40-01-17-18-00-64-77-00-01-31-2E-30-2E-30-2E-31-32-00


и как их теперь привести в нормальный вид?

ps сколько не искал нормальный код для работы с hex не нашел

_________________
ИзображениеИзображениеGarry's Mod 10 gift!
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова я, получаем данные с сурс серверов
СообщениеДобавлено: Сб дек 20, 2008 3:11 pm 
Не в сети
Капитан
Капитан

Зарегистрирован: Пн мар 17, 2008 10:13 am
Сообщения: 270
Откуда: такие как я?
может это папробуеш System.Text.Encoding.Unicode.GetString()?
я недавно винду переставил и мне лень ставить C#
Код:
взято из ирон питон IronPython
там много чего интересного для C#


        public static string EncodeHex(string data) {
            StringBuilder sb = new StringBuilder(data.Length * 2);
            for (int i = 0; i < data.Length; i++) {
                sb.AppendFormat("{0:x2}", (int)data[i]);
            }
            return sb.ToString();
        }

        public static string DecodeHex(string data) {
            //if (data == null) throw Ops.TypeError("expected string, got NoneType");
            //if ((data.Length & 0x01) != 0) throw Ops.ValueError("string must be even lengthed");
            StringBuilder res = new StringBuilder(data.Length / 2);

            for (int i = 0; i < data.Length; i += 2) {
                byte b1, b2;
                if (Char.IsDigit(data[i])) b1 = (byte)(data[i] - '0');
                else b1 = (byte)(Char.ToUpper(data[i]) - 'A' + 10);

                if (Char.IsDigit(data[i + 1])) b2 = (byte)(data[i + 1] - '0');
                else b2 = (byte)(Char.ToUpper(data[i + 1]) - 'A' + 10);

                res.Append((char)(b1 * 16 + b2));
            }
            return res.ToString();
        }

_________________
С вопросами сюда
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: И снова я, получаем данные с сурс серверов
СообщениеДобавлено: Вс дек 21, 2008 1:40 pm 
Не в сети
Сержант
Сержант
Аватара пользователя

Зарегистрирован: Пн апр 02, 2007 12:01 pm
Сообщения: 83
Вобщем проблема решена, всем спасибо, все свободны :)

_________________
ИзображениеИзображениеGarry's Mod 10 gift!
Изображение


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 8 ] 

Часовой пояс: UTC


Кто сейчас на конференции

Сейчас этот форум просматривают: Alexa [Bot] и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB