定義遠程對象(繼承自MarshalByRefObject)2>創建一個Server端作為宿主(注冊通道、注冊遠程對象)3>創建客戶端(注冊通道、通過URL獲取Server端的遠程對象的代理、通過代理操作遠程對象)服務器IP:10.10.1.35端口號:8090如果使用的端口號已經被占用會提示:具體操作代碼:1.創建一個操作具體的項目RemotingModelnamespaceRemotingModel{//記得把類的訪問修飾符改為pu" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Remoting分布式開發在局域網中的應用

系統 1828 0

先弄清一下流程吧:

?? 1>定義遠程對象(繼承自MarshalByRefObject)
?? 2>創建一個Server端作為宿主(注冊通道、注冊遠程對象)
?? 3>創建客戶端(注冊通道、通過URL獲取Server端的遠程對象的代理、通過代理操作遠程對象)

服務器IP:10.10.1.35?? 端口號:8090

如果使用的端口號已經被占用會提示:

具體操作代碼:

?1.創建一個操作具體的項目RemotingModel

?

      namespace RemotingModel

{

    //記得把類的訪問修飾符改為public

    public class Talker : MarshalByRefObject//繼承自該MarshalByRefObject

    {

        public void Talk(string word)

        {

            Console.WriteLine(word);

        }

    }

}


    

?

?2.添加一個服務器端項目RemotingServer:這個項目在服務器端10.10.1.35機器上

?? 1>添加引用System.Runtime.Remoting和RemotingModel項目

?? 2>添加如下代碼:

      using System.Runtime.Remoting;

using System.Runtime.Remoting.Channels;

using System.Runtime.Remoting.Channels.Tcp;



using RemotingModel;


    

?

      static void Main(string[] args)

        {

            //注冊通道(添加引用RemotingModel和System.Runtime.Remoting)

            TcpServerChannel channel = new TcpServerChannel("TalkChannel", 8090);

            ChannelServices.RegisterChannel(channel, false);



            //注冊遠程對象

            RemotingConfiguration.RegisterWellKnownServiceType(typeof(Talker),

                "Ser_Talker",

                WellKnownObjectMode.SingleCall

                );



            Console.ReadLine();

        }


    

?

?3.添加一個客戶端項目RemotingClient:這個項目在客戶端機器上

??? 同樣添加那兩引用

??

      using System.Runtime.Remoting;

using System.Runtime.Remoting.Channels;

using System.Runtime.Remoting.Channels.Tcp;



using RemotingModel;



namespace RemotingClient

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }



        private Talker _talker = null;

        private void button1_Click(object sender, EventArgs e)

        {

            //操作遠程對象

            _talker.Talk(txt_word.Text.Trim());



            //Do other things

            txt_content.Text = "發送成功:" + txt_word.Text.Trim();

        }



        private void Form1_Load(object sender, EventArgs e)

        {

            //注冊通道

            TcpClientChannel channel = new TcpClientChannel();

            ChannelServices.RegisterChannel(channel, false);



            //獲取遠程對象

            _talker = (Talker)Activator.GetObject(typeof(Talker), "TCP://10.10.1.35:80/Ser_Talker");//TCP://10.10.1.35:8090/Ser_Talker

        }

    }

}


    

?注意:如果客戶端和服務器端ChannelServices.RegisterChannel(channel, true);這里是true的時候會報錯:

如果端口號寫的不一致就會出現如下錯誤:

當然如果客戶端和服務器端都在本機上運行的時候這里的true也可以的。

生成之后你直接在服務器端和客戶端下打開bin>Debug>文件夾下的.exe就可以實現效果了。

這樣的話就ok了你在本機上發的消息馬上就能在服務器10.10.1.35上看到消息了。

Remoting分布式開發在局域網中的應用


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月天亚洲 | 在线观看视频中文字幕 | 国产美女在线观看 | 极品吹潮视频大喷潮tv | 毛片黄| 久久国产成人精品国产成人亚洲 | 欧洲一级 | 黄色在线免费观看 | 九九精品国产99精品 | 777色狠狠一区二区三区香蕉 | www.精品| 欧美精品福利视频 | 国产亚洲福利精品一区二区 | 亚洲欧美综合在线观看 | 免费观看a黄一级视频 | 手机在线看片不卡中文字幕 | 欧美激情视频网址 | 牛牛色婷婷在线视频播放 | 男人叼女人的痛爽视频免费 | 免费看a毛片 | 四虎播放 | 国产日韩综合 | 久久久久久久免费视频 | 久久久久久综合成人精品 | 5g天天爽影院 | 老司机午夜精品视频 | 日本黄色免费网址 | 神马老子不卡视频在线 | 91视频国产一区 | 东京干手机福利视频 | 亚洲精品一二三四区 | 天天操大逼 | 青草草在线观看免费视频 | 四虎hk网址| 国产成在线观看免费视频成本人 | 97国产精品视频观看一 | 欧美 亚洲 一区 | 九九热线精品视频18 | 成人老司机深夜福利久久 | 国产乱码在线精品可播放 | 欧美日韩一级片在线观看 |