![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Sality123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.3.2011 Репутация: нет Всего: нет |
Всем привет. Как мне известно разрабы Дотнета неудосужелись сделать по человечески чтение из сокета, а в частности мы должны угадывать сколько данных для чтения есть в сокете, приходится наугад создавать огромный буфер байт и читать туда из сокета. Если данных меньше чем величина буфера, остальные байты заполненые какимито неизвесныме мне символами или нулями, от которых я не магу избавится. Они не попадают под уничтожение функции Split, при проверке величины буфера buff.Lenght показываетполную величину буфера, который я обьявлял, а не которые заполнились из сокета. Вобщем я не магу работать с этим буфером нормально
вот пример.
|
|||
|
||||
erm0l0v |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 11.1.2011 Репутация: нет Всего: 1 |
Read возвращает сколько байт он записал в массив. Если это число равно btReadBuffer.Length то возможно вы еще не все прочитали из сокета и необходимо еще раз вызвать Read. Именно таким способом вы можете читать данные не длиннющим массивом байт а например массивами по 128 байт а потом объединять их, в там случае у вас в худшем случае в памяти будут 128 лишних байт.
|
|||
|
||||
Sality123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.3.2011 Репутация: нет Всего: нет |
Я тоже таким образом выкрутился, но неужели нельзя нормально конвертнуть байты в стринг?
|
|||
|
||||
Sality123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.3.2011 Репутация: нет Всего: нет |
Оказывается у метода GetString() есть еще два параметра, с помощю которых можно получить чистенькие данные .
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |