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

发布于 2024-11-27 22:09:44 字数 52 浏览 0 评论 0原文

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

I just need to know how can I send a message from a server to a client, if the communication could be bidirectional it would be perfect, but it is not necessary.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

狂之美人 2024-12-04 22:09:44

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

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

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

One easy way would be to use Sockets to accomplish this. A good reference for this is:

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

It has little overhead and can be configured much more simply than Remoting or other types of communication.

神经暖 2024-12-04 22:09:44

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

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

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

Consider using .net remoting over tcp/ip. This makes bi-directional communication a breeze. You'll need a TcpServerChannel on one side, a TcpClientChannel on the other side. The server side will have an object that extends MarshalByRefObject.

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

   public string SendAndRecieve (string message)
   {
      return message + message;
   }
}
淡忘如思 2024-12-04 22:09:44
  1. 来自 .net 3.5 的 WCF nettcpbinding .Net 重新连接 for .net 2
  2. TcpListener
  3. 套接字

尝试google 一下例子,有很多这样的例子

  1. WCF nettcpbinding from .net 3.5 .Net Remouting for .net 2
  2. TcpListener
  3. Sockets

Try to google for examples, there are many examples with this

云仙小弟 2024-12-04 22:09:44

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

Another approach would be to use the System.Messaging namespace and exchange messages over MSMQ. Not sure of your requirements, so that may not be the best approach, but it is another way to quickly get messages between 2 .Net processes.

猫弦 2024-12-04 22:09:44

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

编辑

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

For VS 2005/.NET 2.0 try .NET Remoting

Edit

Unless you enjoy the exercise I would advise against sockets. .NET Remoting allows for TCP, UDP, IPC communication and to your code it just looks like you are calling a method/property on an object. Also, any data structure that is serializable can be passed over the wire which lets you use rich data representation, rather than packaging/parsing byte streams at the socket level.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文