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

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Remoting分布式開發(fā)在局域網(wǎng)中的應(yīng)用

系統(tǒng) 1656 0

先弄清一下流程吧:

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

服務(wù)器IP:10.10.1.35?? 端口號:8090

如果使用的端口號已經(jīng)被占用會提示:

具體操作代碼:

?1.創(chuàng)建一個操作具體的項目RemotingModel

?

      namespace RemotingModel

{

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

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

    {

        public void Talk(string word)

        {

            Console.WriteLine(word);

        }

    }

}


    

?

?2.添加一個服務(wù)器端項目RemotingServer:這個項目在服務(wù)器端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 = "發(fā)送成功:" + 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

        }

    }

}


    

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

如果端口號寫的不一致就會出現(xiàn)如下錯誤:

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

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

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

Remoting分布式開發(fā)在局域網(wǎng)中的應(yīng)用


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国内精品久久久久 | 精品美女在线观看视频在线观看 | 欧美喷潮久久久xxxxx | 国产专区欧美 | 国产成人最新毛片基地 | 久色乳综合思思在线视频 | 好吊日免费视频 | 二区视频 | 久久久国| av资源在线天堂 | 亚洲精品久久久一二三区 | 91视频区| 日操 | 91精品国模一区二区三区 | 欧美日韩综合一区 | 9999毛片免费看 | 97超级碰碰| 特级毛片8级毛片免费观看 亚洲精品不卡 | 午夜福利视频 | 日日摸夜夜添夜夜 | 欧美 日本 国产 | 亚洲精品网站日本xxxxxxx | 日本黄色大片免费 | 日韩在线观看中文 | 久草久热| 天天拍天天色 | 91网址 | 色黄小说| 日本在线视 | 国产不卡在线观看视频 | 欧美激情久久久久久久久 | 99精品国产高清在线观看 | 69国产成人精品午夜福中文 | 天天摸夜夜摸狠狠摸夜夜摸 | 一级片国语 | 亚洲欧美天堂综合久久 | 欧美a级成人淫片免费看 | 国产精品欧美日韩 | 毛片成人永久免费视频 | 午夜电影网址 | 新婚少妇小倩给老许泄火 |