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

C# 如何在两个Visual C应用程序之间进行TCP-IP通信?,c#,visual-studio-2005,tcp,C#,Visual Studio 2005,Tcp,我只需要知道如何将消息从服务器发送到客户端,如果通信可以是双向的,这将是完美的,但不是必需的。对于VS 2005/.NET 2.0,请尝试 编辑 除非你喜欢这项运动,否则我建议你不要运动。NET远程处理允许TCP、UDP、IPC通信,对于您的代码来说,它看起来就像是在调用对象上的方法/属性。此外,任何可串行化的数据结构都可以通过连接进行传递,这使您可以使用丰富的数据表示,而不是在套接字级别打包/解析字节流。一种简单的方法是使用套接字来实现这一点。这方面的一个很好的参考是: 它的开销很小,配置起

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

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

编辑


除非你喜欢这项运动,否则我建议你不要运动。NET远程处理允许TCP、UDP、IPC通信,对于您的代码来说,它看起来就像是在调用对象上的方法/属性。此外,任何可串行化的数据结构都可以通过连接进行传递,这使您可以使用丰富的数据表示,而不是在套接字级别打包/解析字节流。

一种简单的方法是使用套接字来实现这一点。这方面的一个很好的参考是:


它的开销很小,配置起来比远程处理或其他类型的通信简单得多。

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

  • 从.NET3.5到.NET2

  • 以谷歌为例,有很多这样的例子,另一种方法是使用System.Messaging名称空间并通过MSMQ交换消息。不确定您的需求,因此这可能不是最好的方法,但它是在2.Net进程之间快速获取消息的另一种方法。

    远程处理被认为是一种“遗留”技术。目前的替代品是WCF,它更易于使用,性能更高,并且遵守HTTP和SOAP等行业标准。是的,但是,他说他正在使用VS2005,我猜也是.NET 2.0,从某种意义上说,开发一个遗留应用程序也是如此
    public class MyServerClass : MarshalByRefObject
    {
       public override void InitializeLifetimeService ()
       {
          return null;
       }
    
       public string SendAndRecieve (string message)
       {
          return message + message;
       }
    }