Страница: 1 | 2 | 
		
		 
			   
			 
			 
			 
			 
			
 
  
		
     
  
    
Вопрос: Передача данных с одного компьютера на другой
     
    
Добавлено: 26.07.10 13:25
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 Uhehesh | Web-сайт: mda.net.ru
      
       
  
Привет снова, VBNet.ru!
 
    
Взялся я за программирование на C# более серьёзно. :)
Теперь я создаю программу с отправкой данных с одного компьютера на другой (сервер-клиент). Никаких излишеств - достаточно лишь того, чтобы сервер принимал сообщения, отправленные клиентом.
К серверу должен подключиться всего один клиент, этого достаточно.
Я искал примеры в интернете, но ничего нужного мне не нашёл - одни сложные примеры с большим количеством не нужных мне свистелок и...
Если кто знает, где можно найти простой пример на эту тему на VB.net или C# (что желательно) - напишите в эту темку, пожалуйста.
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 16
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 VβÐUηìt
![]()
![]()
![]()
Вопросов: 246
Ответов: 3333
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  26.07.10 13:36
       
    
       
  
Гугли WCF
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Uhehesh
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 42
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  26.07.10 13:59
       
    
       
  
Хм...
 
    
Может, попробовать что-то потрадиционней? 
А то мне кажется, что это немного не то, что мне нужно.
(Может и то.)
Немного поподробнее:
Мне нужно создать клиент и сервер. Клиент сможет отправлять сообщения серверам, находящимся в онлайне (это не так сложно, у меня уже есть решение). Сервер должен прочитать сообщение и выполнить действие, а также отправить сообщение в ответ.
Я читал на MSDN про сокеты, но так ничего и не понял. 
Всё довольно запутанно...
Вот, к примеру, некоторые строки моего кода:
Исключение на третьей строке:
"Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение 127.0.0.1:1024"
Значит, нужно добавить кое-что ещё...
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #3
       
Добавлено:  26.07.10 14:13
       
    
       
  
System.Net.Sockets.Socket
 
    
System.Net.Soclets.TcpListener + System.Net.Sockets.TcpClient
System.Net.HttpListener + System.Net.WebClient + System.Net.HttpWebRequest
.NET Framework Remoting
WCF
Если на сервере приложение можно захостить в IIS, можно сделать через ASP .NET Web Services, это один из самых простых в реализации вариантов.
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 Uhehesh
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 42
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  26.07.10 15:27
       
    
       
  
За рекомендацию использования TcpListener и TcpClient - большое спасибо.
 
    
Вроде бы, получается. 
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа:
 Alex 
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Вопросов: 7
Ответов: 73
      
 Профиль |  | #5
       
Добавлено:  26.07.10 17:38
       
    
       
  
Попробуй:
 
    
http://msdn.microsoft.com/en-us/library/w89fhyex.aspx
http://www.canbal.com/index.php?/Using-C-Sharp/msdn-example-of-asynchronous-clientserver-socket.html
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа:
 Uhehesh
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 42
      
 Web-сайт:  
 Профиль |  | #6
      
Добавлено:  26.07.10 18:34
       
    
       
  
Спасибо, попробую...
 
    
А то из-за моей криворукости на этот раз не вышло, может, мне помогут примеры...
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа:
 Uhehesh
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 42
      
 Web-сайт:  
 Профиль |  | #7
      
Добавлено:  27.07.10 16:08
       
    
       
  
Привет всем.
 
    
Это вновь я.
Большое спасибо Alex за подсказку, это действительно помогло.
Но... (я знаю, вы ожидали это слово) у меня никак не получается отправить файл в виде байтов. Каждый раз разная ошибка.
Как мне передать файл в виде байтов?
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #8
       
Добавлено:  27.07.10 17:05
       
    
       
  
Считываешь файл в байтовый массив, передаешь в NetworkStream (или что ты там используешь).
 
    
На приемнике принимаешь даныне из NetworkStream, сохраняешь на диск.
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа:
 Uhehesh
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 42
      
 Web-сайт:  
 Профиль |  | #9
      
Добавлено:  27.07.10 17:21
       
    
       
  
NetworkStream не использую.  
    
Я передавал байты, но что-то ничего не получалось.
Может, где-то есть хороший пример?
		
	  
			 
	
		 
    
       
    
Номер ответа: 10 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #10
       
Добавлено:  27.07.10 20:04
       
    
       
  
Вот набросал.
 
    
Поток клиента считывает файл с диска, отправляет по TCP в поток сервера, он сохраняет файл на диск.
		
	  
			 
	
		 
    
       
    
Номер ответа: 11 
      
Автор ответа:
 Uhehesh
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 42
      
 Web-сайт:  
 Профиль |  | #11
      
Добавлено:  27.07.10 20:33
       
    
       
  
Скорее, не набросал, а откуда-то взял.  
    
Ну ладно, сейчас попробую...
		
	  
			 
	
		 
    
       
    
Номер ответа: 12 
      
Автор ответа:
 Uhehesh
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 42
      
 Web-сайт:  
 Профиль |  | #12
      
Добавлено:  27.07.10 21:09
       
    
       
  
О!
 
    
Всё работает, спасибо.
Раньше программа каким-то образом портила файлы, сейчас исправно передаёт. Причём не очень медленно, а довольно-таки шустро. 
Огромное спасибо Artyom.
		
	  
			 
	
		 
    
       
    
Номер ответа: 13 
      
Автор ответа:
 EROS
![]()
![]()
![]()
![]()
Вопросов: 58
Ответов: 4255
 Профиль |  | #13
       
Добавлено:  27.07.10 21:24
       
    
       
  
 
    
за такое,беспочвенное обвинение, можно и в глазурь получить.. 
		
	  
			 
	
		 
    
       
    
Номер ответа: 14 
      
Автор ответа:
 Uhehesh
![]()
![]()
![]()
![]()
Вопросов: 4
Ответов: 42
      
 Web-сайт:  
 Профиль |  | #14
      
Добавлено:  27.07.10 21:38
       
    
       
  
 
    
Ого! Столько проектов с одинаковыми именами и похожими экшнами.
Меня забанили в гугле. 
Извиняюсь, мне было плохо, поэтому я поленился проверить дальше.
		
	  
			 
	
		 
    
       
    
Номер ответа: 15 
      
Автор ответа:
 Artyom
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #15
       
Добавлено:  27.07.10 23:06
       
    
       
  
 
    
Скорее, не набросал, а откуда-то взял.  
Ничего себе предъява!
Пруфлинк в студию если ты так считаешь.