遠端開發分散式C#程式設計例項
從客戶端到服務端的遠端網路通訊,傳送訊息並返回遠端訊息。
遠端物件(RemoteTest)C# 類庫程式碼部分:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->using System;
namespace RemoteTest
{
public class TestLoader : MarshalByRefObject
{
public TestLoader()
{
string stringWrite = "stor load.";
Console.WriteLine(stringWrite);
}
public string sayHello(string msg)
{
Console.WriteLine("Message: { 0 } ", msg);
Console.WriteLine("Welcome to Message send Systems");
string stc = "Hello from remote";
return stc;
}
}
}
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->using System;
namespace RemoteTest
{
public class TestLoader : MarshalByRefObject
{
public TestLoader()
{
string stringWrite = "stor load.";
Console.WriteLine(stringWrite);
}
public string sayHello(string msg)
{
Console.WriteLine("Message: { 0 } ", msg);
Console.WriteLine("Welcome to Message send Systems");
string stc = "Hello from remote";
return stc;
}
}
}
RemoteTest元件中的 TestLoader 類繼承了 System.MarshalByRefObject 類,便讓客戶端能訪問該遠端物件了。
服務端(Server)命令列應用程式程式碼部分:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->using System;
using System.Runtime;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using RemoteTest;
namespace Server
{
public class Program
{
public static void Main(string[] args)
{
TcpServerChannel channel = new TcpServerChannel(9932);
ChannelServ ices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(TestLoader),"TestLoader",WellKnownObjectMode.SingleCall);
Console.WriteLine("Hello From Server");
Console.ReadLine();
}
}
}
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->using System;
using System.Runtime;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using RemoteTest;
namespace Server
{
public class Program
{
public static void Main(string[] args)
{
TcpServerChannel channel = new TcpServerChannel(9932);
ChannelServ ices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(TestLoader),"TestLoader",WellKnownObjectMode.SingleCall);
Console.WriteLine("Hello From Server");
Console.ReadLine();
}
}
}
注:引用新增元件:System.Runtime.Remoting(下同)。
客戶端(Client)命令列應用程式程式碼部分:
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using RemoteTest;
namespace Client
{
public class ClassClient
{
public static void Main(string[] args)
{
string stringTcp = "tcp://localhost:9932/TestLoader";
TestLoader loader = (TestLoader)Activator.GetObject(typeof(RemoteTest.TestLoader),stringTcp);
string msg;
Console.Write("Enter Message: ");
msg = Console.ReadLine();
Console.WriteLine("Message: {0}" + msg);
string res = loader.sayHello(msg);
Console.WriteLine(res);
}
}
}
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using RemoteTest;
namespace Client
{
public class ClassClient
{
public static void Main(string[] args)
{
string stringTcp = "tcp://localhost:9932/TestLoader";
TestLoader loader = (TestLoader)Activator.GetObject(typeof(RemoteTest.TestLoader),stringTcp);
string msg;
Console.Write("Enter Message: ");
msg = Console.ReadLine();
Console.WriteLine("Message: {0}" + msg);
string res = loader.sayHello(msg);
Console.WriteLine(res);
}
}
}
這裡對new 管道宣告的那兩行已略寫。
程式除錯:啟動Server後,再啟動Client。輸入值後關閉Client,值便在Server中顯示。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-541545/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HarmonyOS遠端狀態訂閱開發例項
- C#開發例項大全C#
- 3.1.5.9 啟動遠端例項
- Spring程式設計式和宣告式事務例項講解Spring程式設計
- KafKa Java程式設計例項KafkaJava程式設計
- 設計模式例項程式碼設計模式
- Jmeter beanshell程式設計例項JMeterBean程式設計
- mysql設定指定ip遠端訪問連線例項MySql
- 分散式系統:遠端呼叫分散式
- C# 管道式程式設計C#程式設計
- GaussDB(分散式)例項故障處理分散式
- 分散式系統程式設計分散式程式設計
- Python實現遠端埠監控例項Python
- C# Winform程式介面優化例項C#ORM優化
- 分散式事務~從seata例項來學習分散式事務分散式
- C# 併發程式設計C#程式設計
- vscode遠端程式設計 終極方案VSCode程式設計
- 《C#併發程式設計經典例項》學習筆記—2.1 暫停一段時間C#程式設計筆記
- 原生javascript開發計算器例項JavaScript
- 後端程式設計師必備:分散式事務基礎篇後端程式設計師分散式
- C# 位運算及例項計算C#
- 分散式雲端計算分散式
- shell script程式設計小結——附帶例項程式設計
- Spark程式設計環境搭建及WordCount例項Spark程式設計
- 基於Scrapy分散式爬蟲的開發與設計分散式爬蟲
- 分散式發號器架構設計分散式架構
- VC++視覺化程式設計第一個程式設計例項出錯C++視覺化程式設計
- C# IDispose使用例項C#
- 設計模式例項講解 - 開放封閉設計模式
- C#並行,多執行緒程式設計並行集合和PLINQ的例項講解並行執行緒程式設計
- C#開發單例項應用程式並響應後續程序啟動引數C#單例
- 關於CSS中@support實現漸進式網頁設計例項程式碼CSS網頁
- 10個最新互動式Web設計例項欣賞Web
- [翻譯]返回導向程式設計例項入門程式設計
- C#設計模式——單例模式C#設計模式單例
- 例項九— 除法器設計
- Linux遠端開發Linux
- seleniumGrid分散式遠端執行測試指令碼分散式指令碼
- 5 Using Far Sync Instances 使用Far Sync遠端同步例項