Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2010, 14:25   #1
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
Счастье Возникает ошибка.....

еще проблемма.... вот код(клиент) который принемает сообщения от сервера:
Код:
Код:
  while (true)
            {
                
                Thread.Sleep(1000);
                NetworkStream stream_send = connect.GetStream();
                BinaryReader reader = new BinaryReader(stream_send);
                richTextBox1.Invoke(new msg_list(msg_list_g), reader.ReadString());
               }
вот текст который отсылается клиенту..
К нам заходит пользователь - g
К нам заходит пользователь - g
К нам заходит пользователь - g
К нам заходит пользователь - g
К нам заходит пользователь - g
К нам заходит пользователь - g
К нам заходит пользователь - g
К нам заходит пользователь - g
К нам заходит пользователь - g
К нам заходит пользователь - g

при отправки вылазиет исключение(в клиенте) :
Слишком много байт в типе, который должен быть в 7-разрядной кодировке Int32.

как исправить?
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Старый 27.08.2010, 15:50   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Надо использовать не
Код:
richTextBox1.Invoke(new msg_list(msg_list_g), reader.ReadString());
а
Код:
richTextBox1.Invoke(new msg_list(msg_list_g), reader.Read(...));
И не мешало бы проверять можно ли вообще читать. В общем вот пример с MSDN:
Код:
// Check to see if this NetworkStream is readable.
            if(myNetworkStream.CanRead){
                byte[] myReadBuffer = new byte[1024];
                StringBuilder myCompleteMessage = new StringBuilder();
                int numberOfBytesRead = 0;

                // Incoming message may be larger than the buffer size.
                do{
                     numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
                     myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));			
                }
                while(myNetworkStream.DataAvailable);

                // Print out the received message to the console.
                Console.WriteLine("You received the following message : " +
                                             myCompleteMessage);
            }
            else{
                 Console.WriteLine("Sorry.  You cannot read from this NetworkStream.");
            }
http://msdn.microsoft.com/en-us/libr...ream.read.aspx
Hollander вне форума Ответить с цитированием
Старый 27.08.2010, 18:54   #3
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию

неполучается.....
Код:
StringBuilder myCompleteMessage = new StringBuilder();
                NetworkStream stream_send = connect.GetStream();
                BinaryReader reader = new BinaryReader(stream_send);
                Byte[] byt = new Byte[9999];
                int a = reader.Read(byt,0,byt.Length);
                myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(byt, 0, 0));
                richTextBox1.Invoke(new msg_list(msg_list_g), myCompleteMessage);
он пишет типа неявное преобразование StringBuilder в string......
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Старый 28.08.2010, 11:59   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

В какой строке?
Ошибочка
Код:
 myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(byt, 0, a));
Hollander вне форума Ответить с цитированием
Старый 28.08.2010, 15:26   #5
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию

всёравно косяк...:
Невозможно преобразовать объект типа "System.Text.StringBuilder" к типу "System.String".

вот(выделеная строка в ней ошибка эта)
Код:
 Thread.Sleep(1000);
                StringBuilder myCompleteMessage = new StringBuilder();
                NetworkStream stream_send = connect.GetStream();
                BinaryReader reader = new BinaryReader(stream_send);
                Byte[] byt = new Byte[9999];
                int a = reader.Read(byt,0,byt.Length);
                myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(byt, 0, a));
                richTextBox1.Invoke(new msg_list(msg_list_g), myCompleteMessage);
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Старый 29.08.2010, 10:19   #6
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Код:
 richTextBox1.Invoke(new msg_list(msg_list_g), (string)myCompleteMessage);
А так?
dampirik вне форума Ответить с цитированием
Старый 29.08.2010, 14:37   #7
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию

I have cheats!!!!

Последний раз редактировалось MyXa; 29.08.2010 в 14:39.
MyXa вне форума Ответить с цитированием
Старый 29.08.2010, 15:35   #8
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Код:
NetworkStream Stream = Client.GetStream();
string send="";
byte[] buff = new byte[256];
Stream.Read(buff, 0, buff.Length);
send = Encoding.UTF8.GetString(buff);
TextBox.Text=send;
dampirik вне форума Ответить с цитированием
Старый 30.08.2010, 12:40   #9
MyXa
Пользователь
 
Регистрация: 25.08.2010
Сообщений: 77
По умолчанию

ужасно глючит то цифры выводит то слова.... и по разному...
I have cheats!!!!
MyXa вне форума Ответить с цитированием
Старый 30.08.2010, 14:36   #10
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Какой ужас. В C# есть прекрасный метод у каждого класса ToString(). А следовательно, чтобы получить string из StringBuilder, делаем так:
Код:
myCompleteMessage.ToString()
p.s. в сети найти на подобный вопрос, дело минуты.
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При закрытии Word возникает ошибка sewer777 Microsoft Office Word 3 20.10.2011 13:19
возникает ошибка, связанная с StrToInt в Delphi Kurai Помощь студентам 3 07.04.2010 20:38
Из-за чего возникает ошибка? [pascal] supersuper2 Помощь студентам 1 09.12.2009 14:29
Мой плеер. Возникает ошибка Fellics{новичок} Помощь студентам 8 26.06.2008 20:11
Возникает ошибка Invalid floating point operation Иринкаа Помощь студентам 3 29.11.2007 22:10