zoukankan      html  css  js  c++  java
  • .net remoting实例

    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.如果想做的更好,弄个安装包,可以在任意机器上跑客户端,去访问服务器。

    写的匆忙,欢迎评论!

  • 相关阅读:
    MybatisPlus学习笔记4:全局策略配置
    函数的参数
    函数参数作业
    函数基本使用的作业
    函数的基本使用
    文件处理作业
    文件处理b模式和指针
    用户登入注册作业
    文件处理作业
    文件处理
  • 原文地址:https://www.cnblogs.com/363546828/p/4113131.html
Copyright © 2011-2022 走看看