码迷,mamicode.com
首页 > Web开发 > 详细

.net remoting实例

时间:2014-11-21 18:13:00      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:http   io   ar   os   使用   sp   on   cti   bs   

1.通信协议,两个基本功能,显示消息和发送消息。
 /// <summary>
    /// 服务器端回调接口
    /// </summary>
    public interface IChatCallback
    {
        /// <summary>
        /// 回调方法,显示聊天消息
        /// </summary>
        /// <param name="message"></param>
        void ShowMessage(string message);
    }

 public interface IDuplexChat
    {
        void SendMessage(string message, IChatCallback callBack);
    }
2.客户端,录入消息,并使用协议发送出去。
class Program
    {
        static IDuplexChat proxy = null;
        static string message = string.Empty;

        static void Main(string[] args)
        {
            RemotingConfiguration.Configure("ChatRoom.Client.exe.config", false);
            proxy  = (IDuplexChat)Activator.GetObject(typeof(IDuplexChat), "http://localhost:8080/ChatRoom/ChatRoomURL");

            message = Console.ReadLine();
            SendMessage(message);
        }

        private static void SendMessage(string message)
        {
            proxy.SendMessage(message, new ChatRoomCallBackHandler());

            message = Console.ReadLine();
            if (message != "exit")
            {
                SendMessage(message);
            }
        }
    }
3.服务器端,客户端调用的时候有一个服务器的url,根据该统一资源标示符找到服务器的提供的基于协议的服务。那么,服务器需要实现该协议,并给客户端返回些结果什么的。
/// <summary>
    /// 实现.net remoting按引用封送的类型
    /// </summary>
    public class DuplexChatRemoting : MarshalByRefObject, IDuplexChat
    {
        public void SendMessage(string message, IChatCallback callBack)
        {
            Console.WriteLine("Invoke the method SendMessage()");

            //do other......
            callBack.ShowMessage(message);
        }
    }
4.客户端、服务器和协议都有了。那么客户端随时都有可能访问服务器端,那么就需要服务器端一直运行着。因此需要一个寄宿器,让服务器端跑起来。
    class Program
    {
        static void Main(string[] args)
        {
            RemotingConfiguration.Configure("ChatRoom.ConsoleHost.exe.config", false);
            Console.WriteLine(".Net Remoting 服务已启动......");
            Console.Read();
        }
    }
5.如果想做的更好,弄个安装包,可以在任意机器上跑客户端,去访问服务器。

写的匆忙,欢迎评论!

.net remoting实例

标签:http   io   ar   os   使用   sp   on   cti   bs   

原文地址:http://www.cnblogs.com/363546828/p/4113131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!