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

本文关键字:之间 应用程序 TCP-IP 通信 Visual 两个 | 更新日期: 2023-09-27 18:04:30

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

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

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

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

它几乎没有开销,并且可以比Remoting或其他类型的通信配置简单得多。

考虑通过tcp/ip使用。net远程。这使得双向交流变得轻而易举。一边需要TcpServerChannel,另一边需要TcpClientChannel。服务器端将有一个扩展MarshalByRefObject的对象。

public class MyServerClass : MarshalByRefObject
{
   public override void InitializeLifetimeService ()
   {
      return null;
   }
   public string SendAndRecieve (string message)
   {
      return message + message;
   }
}
  1. WCF netttcpbinding from .net 3.5 .net Remouting for .net 2
  2. TcpListener
  3. 套接字

试着谷歌一下例子,有很多这样的例子

另一种方法是使用System。消息传递名称空间和通过MSMQ交换消息。不确定您的需求,所以这可能不是最好的方法,但它是另一种在2 . net进程之间快速获取消息的方法。

. NET 2.0尝试。NET Remoting

编辑

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