如何在2个Visual C#应用程序之间进行TCP-IP通信?

时间:2011-08-03 20:25:18

标签: c# visual-studio-2005 tcp

我只需要知道如何从服务器向客户端发送消息,如果通信可以是双向的,那将是完美的,但是没有必要。

5 个答案:

答案 0 :(得分:0)

对于VS 2005 / .NET 2.0,请尝试.NET Remoting

修改

除非你喜欢这个练习,否则我会建议不要插座。 .NET Remoting允许TCP,UDP,IPC通信和您的代码,它看起来就像您在对象上调用方法/属性。此外,任何可序列化的数据结构都可以通过线路传递,这使您可以使用丰富的数据表示,而不是在套接字级别打包/解析字节流。

答案 1 :(得分:0)

一种简单的方法是使用套接字来完成此任务。对此的一个很好的参考是:

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

它的开销很小,可以比Remoting或其他类型的通信更简单地配置。

答案 2 :(得分:0)

考虑在tcp / ip上使用.net远程处理。这使得双向通信变得轻而易举。一方需要TcpServerChannel,另一方需要TcpClientChannel。服务器端将有一个扩展MarshalByRefObject的对象。

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

   public string SendAndRecieve (string message)
   {
      return message + message;
   }
}

答案 3 :(得分:0)

  1. WCF nettcpbinding来自.net 3.5 .Net Remouting for .net 2
  2. TcpListener
  3. Sockets
  4. 尝试谷歌的例子,有很多这个例子

答案 4 :(得分:0)

另一种方法是使用System.Messaging命名空间并通过MSMQ交换消息。不确定您的要求,因此这可能不是最好的方法,但它是在2.Net进程之间快速获取消息的另一种方法。