Jūs esateŽurnalai / Ernestas Kardzys's blog / C# Remote Object'o iškvietimas
C# Remote Object'o iškvietimas
KTU'ne per .NET modulį davė parašyti dvi programėles. Viena iškviečia kitos Remote Object'ą. Kitaip tariant: veikia programa-serveris. Jinai turi žiauriai gerą ir naudingą metodą, kuriuo baisiai nori pasinaudoti programa-klientas. Kaip tai padaryti?
//-----------RemoteServer.cs--------------------------
using System;
using System.Runtime;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PirmasAtsiskaitymas
{
public class RemoteServer : MarshalByRefObject
{
public RemoteServer() { }
static void Main(string[] args)
{
HttpChannel chan1 = new HttpChannel(10000);
ChannelServices.RegisterChannel(chan1);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(PirmasAtsiskaitymas.RemoteServer),
"GrazintiSkaiciu",
WellKnownObjectMode.Singleton);
Console.ReadLine();
}
public int GrazintiSkaiciu()
{
Random random = new Random();
int skaicius = random.Next();
return skaicius;
}
}
}
//-----------------Program.cs--------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.IO;
namespace PirmasAtsiskaitymas
{
class Program
{
static void Main(string[] args)
{
HttpChannel chan1 = new HttpChannel();
ChannelServices.RegisterChannel(chan1);
RemoteServer serveris =
(RemoteServer)Activator.GetObject(typeof(PirmasAtsiskaitymas.RemoteServer),
"http://localhost:10000/GrazintiSkaiciu");
try
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Nutoles serveris grazino: " + serveris.GrazintiSkaiciu());
}
}
catch (IOException ex)
{
Console.WriteLine("Priemimo klaida!!!!");
}
}
}
}
Kompiliavimas:
csc RemoteServer.cs
csc /reference:RemoteServer.exe Program.cs
Tada paleidžiame RemoteServer.exe ir Program.exe.
Na, ir žiūrim, ką šis programinės minties stebūklas pagamins :)

Nu joa. Šifravimo kaip minimum reikia ;///
Buvo kita tema su XML Web Service'ais. Bet davė Remote Object'us :)
Gal ir įdomu, bet praktiškai nenaudinga šiais web servisų laikais ;)
Be to iš saugumo pusės tai hmf..
Skelbti naują komentarą