Как я могу установить связь TCP-IP между двумя приложениями Visual C #? - PullRequest
2 голосов
/ 04 августа 2011

Мне просто нужно знать, как я могу отправить сообщение с сервера клиенту, если связь может быть двунаправленной, это было бы идеально, но это не обязательно.

Ответы [ 5 ]

0 голосов
/ 04 августа 2011

Другой подход заключается в использовании пространства имен System.Messaging и обмене сообщениями через MSMQ.Не уверен в ваших требованиях, так что это может быть не лучшим подходом, но это еще один способ быстро получать сообщения между двумя процессами .Net.

0 голосов
/ 04 августа 2011
  1. WCF nettcpbinding из .net 3.5 .Net Remouting для .net 2
  2. TcpListener
  3. Сокеты

Попробуйте Google для примеров, есть много примеров с этим

0 голосов
/ 04 августа 2011

Один простой способ - использовать сокеты для достижения этой цели.Хороший пример для этого:

http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx

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

0 голосов
/ 04 августа 2011

Рассмотрите возможность использования .net remoting через tcp / ip.Это делает двунаправленную связь бризом.Вам понадобится TcpServerChannel с одной стороны, TcpClientChannel с другой стороны.На стороне сервера будет объект, который расширяет MarshalByRefObject .

public class MyServerClass : MarshalByRefObject
{
   public override void InitializeLifetimeService ()
   {
      return null;
   }

   public string SendAndRecieve (string message)
   {
      return message + message;
   }
}
0 голосов
/ 04 августа 2011

Для VS 2005 / .NET 2.0 попробуйте .NET Remoting

Редактировать

Если вам не понравится упражнение, я бы советовал против розеток. .NET Remoting обеспечивает связь по TCP, UDP, IPC, и для вашего кода это выглядит так, будто вы вызываете метод / свойство объекта. Кроме того, любая структура данных, которая может быть сериализована, может передаваться по проводам, что позволяет использовать расширенное представление данных, а не упаковывать / анализировать байтовые потоки на уровне сокетов.

...