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

3
我只需要知道如何从服务器发送消息给客户端,如果通信可以是双向的那就更好了,但这并非必要。

1
搜索关于C#客户端服务器教程的内容。 - Jalal Said
5个回答

0

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

编辑

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


0

0

0
另一种方法是使用System.Messaging命名空间并通过MSMQ交换消息。不确定您的要求,因此这可能不是最佳方法,但它是在两个.NET进程之间快速传递消息的另一种方式。

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;
   }
}

远程调用被认为是一种“遗留”技术。当前的替代方案是WCF,它更易于使用,性能更高,并遵循诸如HTTP和SOAP之类的行业标准。 - Mark
2
是的,然而他说他正在使用VS 2005,我猜测也是.NET 2.0,因此从某种意义上来说,他正在开发一个遗留应用程序。 - Rob Goodwin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接