定義遠程對象(繼承自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條評論
主站蜘蛛池模板: 成年在线视频免费视频观看 | 交免费观看在线 | 日韩伦理一区 | 日本香蕉一区二区三区 | 欧美日本一区视频免费 | 特黄视频 | 国产欧美日韩在线 | 免费乱理伦片在线观看八戒 | 男女无遮挡高清性视频直播 | 亚洲一级色片 | 成人国产精品免费观看视频 | 无码国产精品成人午夜视频 | 国产精品尤物在线 | 国产精品久久久久久久久免费相片 | 欧美激情视频网站 | 日韩电影一区 | 无码免费一区二区三区免费播放 | 香蕉视频免费网站 | 国产成人综合一区二区三区 | 成人精品网站在线观看 | 人人看人人干 | 国产精品综合视频 | 欧美调教视频 | 先锋影音av最新资源 | 一区二区日韩 | 成人免费观看www视频 | 山岸逢花在线观看 | 国产自产视频 | 日韩少妇成熟A片无码专区 黄在线免费观看 | 久久这里只有精品9 | 亚洲综合在线视频 | 中文在线国产 | 欧美日韩中文在线视频 | av毛片在线免费看 | 人人射人人插 | 日韩手机视频 | 亚洲欧美日韩综合一区久久 | 亚洲国产精品一区二区第一页 | 99re热精品视频 | a视频在线观看免费 | 啪啪免费网|