【发布时间】:2011-08-03 20:25:18
【问题描述】:
我只需要知道如何将消息从服务器发送到客户端,如果通信可以是双向的,那将是完美的,但这不是必需的。
【问题讨论】:
标签: c# visual-studio-2005 tcp
我只需要知道如何将消息从服务器发送到客户端,如果通信可以是双向的,那将是完美的,但这不是必需的。
【问题讨论】:
标签: c# visual-studio-2005 tcp
一种简单的方法是使用套接字来完成此操作。一个很好的参考是:
http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx
它的开销很小,并且可以比远程处理或其他类型的通信更简单地配置。
【讨论】:
考虑通过 tcp/ip 使用 .net 远程处理。这使得双向通信变得轻而易举。一侧需要TcpServerChannel,另一侧需要TcpClientChannel。服务器端将有一个扩展 MarshalByRefObject 的对象。
public class MyServerClass : MarshalByRefObject
{
public override void InitializeLifetimeService ()
{
return null;
}
public string SendAndRecieve (string message)
{
return message + message;
}
}
【讨论】:
尝试google的例子,有很多这样的例子
【讨论】:
另一种方法是使用 System.Messaging 命名空间并通过 MSMQ 交换消息。不确定您的要求,因此这可能不是最佳方法,但它是另一种在 2 个 .Net 进程之间快速获取消息的方法。
【讨论】:
对于 VS 2005/.NET 2.0 试试 .NET Remoting
编辑
除非你喜欢这个练习,否则我建议不要使用套接字。 .NET Remoting 允许 TCP、UDP、IPC 通信,并且对于您的代码,它看起来就像您正在调用对象的方法/属性。此外,任何可序列化的数据结构都可以通过线路传递,这使您可以使用丰富的数据表示,而不是在套接字级别打包/解析字节流。
【讨论】: