![]() |
|
Модераторы: gambit |
![]()
|
|
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Возникла такая проблема: не могу получить длину сообщения во входном потоке от сервера. делаю так:
В результате пишет: "Этот поток не поддерживает операций поиска." Задавать явно не хочу, так как размер сообщения заранее не знаю, а выделять лишнюю память - не самый лучший вариант... Ой, прошу прощения! Запостил не в тот раздел... Модераторы переместите пожалуйста в "распределённые приложения и сети". Это сообщение отредактировал(а) XavierElf - 10.4.2007, 14:24 --------------------
Даешь открытые исходники! |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 6 Всего: 170 |
Почитал пост и самому интересно стало.
Похоже, ситуация дейсвительно печальна. Не поддерживается. Вот накопал кое-что по этому поводу. http://csharpcomputing.com/Tutorials/faq.htm
http://www.vbforums.com/archive/index.php/t-384913.html 3 последние поста Я бы лично сделал все-таки буфер конкретной длины и заполнял бы его периодически, с проверкой на заполнение. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: нет Всего: 15 |
При работе с потоками частенько используются т.н. буфер. У буфера обычно определен размер. По-этому для твоего случая я могу порекомендовать только воспользоваться буфером.
http://msdn2.microsoft.com/en-us/library/s...tream.read.aspx Только вместо добавления в строку тебе нужно реализовать добавление в твой массив _streamData. Ну и есессно. myNetworkStream => _nwStream. Добавлено через 2 минуты и 51 секунду Тьфу, опять не сразу понял суть вопроса. Но решение, ИМХО, все равно правильное? Это сообщение отредактировал(а) Naum - 10.4.2007, 14:53 -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Дело в том, что я делаю прогу, которая работает с протоколом IRC. Соответственно длина потока варьируется в зависимости от размера сообщения, которое присылает сервер. А если, к примеру, кто-то отправил сообщение длиной допустим символов 500-1000? Плюс к этому добавить количество дополнительных символов, которыми сервер дополняет это сообщение?
Пример такого сообщения:
--------------------
Даешь открытые исходники! |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 6 Всего: 170 |
Так в чем проблема? Пример Naum-а это учитывает.
Читаешь из потока 1024 байт, сохраняешь их в строке, смотришь, есть ли еще данные для чтения, если да - читаешь снова и .т.д. -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Всем пасибо! Сделал так:
--------------------
Даешь открытые исходники! |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Извиняюсь перед модераторами, но есть ещё один вопрос и он также касается этой темы. В общем, мне нужно, чтобы по нажатию кнопки "дисконнект" завершалось соединение с сервером. Сделал таким образом:
Однако возникла проблема в том, что когда нажимаю на неё (кнопку), постоянно вылезает сообщение: "Поток находится в процессе прерывания". Хотя я установил его бит IsBackground в true. Что не так? --------------------
Даешь открытые исходники! |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
up
--------------------
Даешь открытые исходники! |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 2 Всего: 232 |
Одного только вызова Abort недостаточно - будет ждать до посинения. Нужно:
Тогда обрубит сразу. P.S. Модератор: Пожалуйста, один топик - один вопрос. Не надо подымать тему в надежде что кто-то прокрутит до 2-го, 3-го и т.п. вопросов, и даст ответ. -------------------- ![]() |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Спасибо!
З.Ы. Я говорю только про вопросы близкие по теме. З.З.Ы. Сорри за офтоп. Возможно я ошибаюсь... --------------------
Даешь открытые исходники! |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |