Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интернет 
:(
    Опции темы
YoD
Дата 26.12.2004, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.11.2004

Репутация: нет
Всего: нет



Подскажите пожалуйста, как использую встроенные классы .net famework осуществить связь по протоколу TCP\IP между клмпьютерами? мне нужно устроить нечто вроде простенького чата, а как это сделать, чтобы не подключать никаких компонентов, не знаю...

буду очень благодарен за любую информацию и особенно за фрагменты работающего кода.
PM MAIL ICQ   Вверх
[Last]Wizard
Дата 27.12.2004, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 20.7.2004
Где: Минск, Беларусь

Репутация: 2
Всего: 10



Попробуй копнуть в сторону .NET Reflection.
PM ICQ   Вверх
arilou
Дата 28.12.2004, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 7
Всего: 61



Цитата
Wizard, 27.12.2004,  15:48]Попробуй копнуть в сторону .NET Reflection.

Зачем?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
[Last]Wizard
Дата 28.12.2004, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 20.7.2004
Где: Минск, Беларусь

Репутация: 2
Всего: 10



Цитата(arilou @ 28.12.2004, 13:46)
Зачем?

smile Блин, имел в виду Remoting smile
PM ICQ   Вверх
Kurt
Дата 2.1.2005, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



В примерах .NETSDK есть приложение под названием WinTalk - имхо, неплохой работающий код..


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
YoD
Дата 2.1.2005, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.11.2004

Репутация: нет
Всего: нет



Спасибо...
PM MAIL ICQ   Вверх
Gazon
Дата 12.1.2005, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2005

Репутация: 1
Всего: 8



Цитата
Цитата(arilou @ 28.12.2004, 13:46)
Зачем?

smile Блин, имел в виду Remoting smile

Зачем remoting? Здесь ему надо копать в сторону класса Socket.
--------------------
Чем больше узнаешь, тем больше не знаешь, но до истины всегда можно добраться.
PM MAIL   Вверх
[Last]Wizard
Дата 12.1.2005, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 20.7.2004
Где: Минск, Беларусь

Репутация: 2
Всего: 10



Цитата(Gazon @ 12.1.2005, 18:23)
Зачем remoting? Здесь ему надо копать в сторону класса Socket.

Да, можно и в System.Net.Socket и прочих классах покопаться, но ИМХО Remoting проще, понятнее, да и прямое обращение к сокетам уже немного устарело.
PM ICQ   Вверх
Exception
Дата 12.1.2005, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



Ты бы ещё через Winsock.dll попытался (винсок апи) smile
PM   Вверх
Gazon
Дата 13.1.2005, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2005

Репутация: 1
Всего: 8



Цитата(Run @ 12.1.2005, 21:43)
Ты бы ещё через Winsock.dll попытался (винсок апи) smile

smile
Не факт, что для конкретной задачи больше подходит remoting. Тот кто сталкивался с подводными камнями Remoting, тот меня поймет. в .NET гораздо более просто создать в несколько строчек кода сервер и клиент через сокеты, тем более, что есть специальные классы помошники для работы с сокетами.
Вот совсем не сложный пример использования класса TCPClient класса для установки соединения.
Код
Shared Sub Connect(server As [String], message As [String])
  Try
     ' Create a TcpClient.
     ' Note, for this client to work you need to have a TcpServer
     ' connected to the same address as specified by the server, port
     ' combination.
     Dim port As Int32 = 13000
     Dim client As New TcpClient(server, port)
     
     ' Translate the passed message into ASCII and store it as a Byte array.
     Dim data As [Byte]() = System.Text.Encoding.ASCII.GetBytes(message)
     
     ' Get a client stream for reading and writing.
     '  Stream stream = client.GetStream();
     Dim stream As NetworkStream = client.GetStream()
     
     ' Send the message to the connected TcpServer.
     stream.Write(data, 0, data.Length)
     
     Console.WriteLine("Sent: {0}", message)
     
     ' Receive the TcpServer.response.
     ' Buffer to store the response bytes.
     data = New [Byte](256) {}
     
     ' String to store the response ASCII representation.
     Dim responseData As [String] = [String].Empty
     
     ' Read the first batch of the TcpServer response bytes.
     Dim bytes As Int32 = stream.Read(data, 0, data.Length)
     responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes)
     Console.WriteLine("Received: {0}", responseData)
     
     ' Close everything.
     client.Close()
  Catch e As ArgumentNullException
     Console.WriteLine("ArgumentNullException: {0}", e)
  Catch e As SocketException
     Console.WriteLine("SocketException: {0}", e)
  End Try
 
  Console.WriteLine(ControlChars.Cr + " Press Enter to continue...")
  Console.Read()
End Sub 'Connect

А remoring был специально разработан для удаленного вызова процедур, и как мне кажется меньше подходит для реализации передачи блоков текста в чате.
--------------------
Чем больше узнаешь, тем больше не знаешь, но до истины всегда можно добраться.
PM MAIL   Вверх
[Last]Wizard
Дата 13.1.2005, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 20.7.2004
Где: Минск, Беларусь

Репутация: 2
Всего: 10



Цитата(Gazon @ 12.1.2005, 23:30)
Тот кто сталкивался с подводными камнями Remoting, тот меня поймет.

Ты считаешь, что в сокетах подводных камней меньше?
Проблемы с Remoting начинают возникать, когда пытаешься отойти от стандартной схемы реализации. Там да, действительно возникают сложности. Но в данном примере требуется совершенно простенькая реализация, проблем возникнуть не должно.

Цитата(Gazon @ 12.1.2005, 23:30)
в .NET гораздо более просто создать в несколько строчек кода сервер и клиент через сокеты

Весь тот код, который ты написал, в Remoting можно заменить буквально двумя строчками.

Цитата(Gazon @ 12.1.2005, 23:30)
А remoring был специально разработан для удаленного вызова процедур

Remoting был разработан для обеспечения взаимодействия между различными доменами приложений, а удаленный вызов процедур - лишь способ такого взаимодействия. Причем хочу заметить, весьма удобный способ.
PM ICQ   Вверх
Gazon
Дата 13.1.2005, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2005

Репутация: 1
Всего: 8



Цитата
Ты считаешь, что в сокетах подводных камней меньше?

Да. При программировании сокетов не возникает таких вопросов, как "я используя Remoting написал приложение для эксплуатации в интернете, но оно хорошо работает под локальную сеть, а под интернет почему-то не хочет." И вопросы задаются такие на официальном форуме Microsoft, где все долго пытаются разобраться в чем дело, а в итоге выяснятеся, что это особенность подмены IP адресов в Remoting, которая случается редко, но метко.
Да, согласен, что в сокетах некоторые вещи реализовать сложнее: протоколы взаимодействия с прокси и т.д., но не намного сложнее. Хотя в общем все относительно.
Цитата
Весь тот код, который ты написал, в Remoting можно заменить буквально двумя строчками.

А ты убери из этого примера комментарии и остальной код, не относящийся к сокетам. Получется не больше.
Цитата
Remoting был разработан для обеспечения взаимодействия между различными доменами приложений, а удаленный вызов процедур - лишь способ такого взаимодействия. Причем хочу заметить, весьма удобный способ.

Это тоже самое, но другая трактовка. smile Можно трактовать это и так:
"Remoting был разработан для обеспечения удаленного вызова процедур, а взаимодействие между различными доменами приложений - лишь итог этих вызовов. Причем хочу заметить, весьма удобный способ."

Это сообщение отредактировал(а) Gazon - 13.1.2005, 16:05
--------------------
Чем больше узнаешь, тем больше не знаешь, но до истины всегда можно добраться.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1261 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.