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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2012, 00:53   #1
AndXor
Пользователь
 
Регистрация: 02.10.2012
Сообщений: 16
По умолчанию Потеря части сообщения

Вообщем задача такая. Есть клиент и сервер(всё на локалке).
Задача сервера(консоль) получить всех пользователей на компьютере.
Задача клиента(win32 приложение) получить эти данные у сервера.
Всё просто. Реализуется через TCP.
Только возникла проблема. Сообщение не доходит. Доходит лишь 8 символов( Как бы это можно было исправить(
Клиент
Код:
private: System::Void btnSend_Click(System::Object^  sender, System::EventArgs^  e) {
				try
				{
				Int32 port = 13000;	//задаем номер порта и IP-адрес сервера
				String^ localAddr =  this->tbIP->Text ; //определяем IP адрес
				TcpClient^ client = gcnew TcpClient( localAddr, port ) ; //создаем TCP-клиент со своим номером порта
				this->tbInfo->Text = L"Подключение произведено.\n";
	NetworkStream^ stream = client->GetStream(); //создаём поток для чтения и записи
	double x=123456789;
	array<Byte>^ data;
	 String^ msg = String::Empty;
	data = BitConverter::GetBytes( x );
				stream->Write( data, 0, data->Length );	//отправляем массив Byte серверу			
				Int32 bytes = stream->Read(data, 0, data->Length);
				msg = Encoding::Default->GetString( data, 0, bytes );
				this->tbInfo->Text += "\n" + msg; //отображаем присланные данные
				}
				//вывод возникшего исключения в поле label
				catch ( Exception^ e ) 
				{
				   this->tbInfo->Text = e->ToString() ;
				}

};
};
Сервер
Код:
void main()
{
	try
	{
		Int32 port = 13000;
		IPAddress^ localaddr = IPAddress::Parse("127.0.0.1");

		TcpListener^ server = gcnew TcpListener(localaddr, port);
		server->Start();
		while ( true )
      {
         Console::Write( "Ожидание подключения... " );
         TcpClient^ client = server->AcceptTcpClient();
         Console::WriteLine( "Подключено!" );
		 NetworkStream^ stream = client->GetStream();
			WindowsIdentity^ identity =  WindowsIdentity::GetCurrent();
	//Позволяет проверить членство пользователя Windows в группе
	//Инициализирует новый экземпляр класса WindowsPrincipal указанным объектом WindowsIdentity
			WindowsPrincipal^ principle = gcnew WindowsPrincipal(identity);
			String^ UserInfo = principle->Identity->Name;
...... ОПРЕДЕЛЯЕМ ПОЛЬЗОВАТЕЛЕЙ.
            // Send back a response.
			array<Byte>^msg = Text::Encoding::Default->GetBytes( UserInfo );
			//	 String^ msgg = String::Empty;
				// msgg = Encoding::ASCII->GetString( UserInfo, 0, msg->Length );
            stream->Write( msg, 0, msg->Length );
            Console::WriteLine( "Отправлено: {0}", UserInfo );

         // Заканчиваем и закрываем подлкючение
         client->Close();
      }
   }
	catch ( SocketException^ e ) 
   {
      Console::WriteLine( "SocketException: {0}", e );
   }

   Console::WriteLine( "\nHit enter to continue..." );
   Console::Read();
}
Ну и скрины того что получается...
AndXor вне форума Ответить с цитированием
Старый 13.10.2012, 18:51   #2
Dan_banan
Пользователь
 
Регистрация: 19.11.2011
Сообщений: 23
По умолчанию

я писал подобное приложение на шарпе. посмотри внимательно на буфер потоков, на то когда какой очищается, что туда записывается. я вообще передавал файлы по 1 гб таким путем
Dan_banan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача - найти произведение первой цифры целой части и третей цифры дробной части вещественного числа. LAZARUS maks22 Lazarus, Free Pascal, CodeTyphon 2 30.01.2012 19:53
Потеря части данных при отправке через TSocket Crystallon Работа с сетью в Delphi 7 02.10.2011 21:46
Потеря данных Марина520 Microsoft Office Word 0 13.06.2010 22:48
Потеря значений. С++ Снежинкина Помощь студентам 0 27.05.2010 13:03
Потеря переменной Amen PHP 2 27.10.2009 02:26