<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=IIRLaborRemoting</id>
	<title>IIRLaborRemoting - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=IIRLaborRemoting"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=IIRLaborRemoting&amp;action=history"/>
	<updated>2026-05-16T13:28:10Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=IIRLaborRemoting&amp;diff=139136&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoszak|IIRLaborRemoting}}  &lt;noautolink&gt;  Labvezér: Rajacsics Tamás   ==A laboron megírt forráskódok==  ===RemotingCommon / ICalc.cs===  &lt;pre&gt; us…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=IIRLaborRemoting&amp;diff=139136&amp;oldid=prev"/>
		<updated>2012-10-21T20:33:59Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoszak|IIRLaborRemoting}}  &amp;lt;noautolink&amp;gt;  Labvezér: Rajacsics Tamás   ==A laboron megírt forráskódok==  ===RemotingCommon / ICalc.cs===  &amp;lt;pre&amp;gt; us…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoszak|IIRLaborRemoting}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noautolink&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Labvezér: Rajacsics Tamás&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==A laboron megírt forráskódok==&lt;br /&gt;
&lt;br /&gt;
===RemotingCommon / ICalc.cs===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
&lt;br /&gt;
namespace RemotingCommon2&lt;br /&gt;
{&lt;br /&gt;
	 public interface ICalc&lt;br /&gt;
	 {&lt;br /&gt;
		  int Add(int a, int b);&lt;br /&gt;
	 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RemotingServer / Calc.cs===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using RemotingCommon2;&lt;br /&gt;
&lt;br /&gt;
namespace RemotingServer&lt;br /&gt;
{&lt;br /&gt;
	 class Calc : MarshalByRefObject,ICalc&lt;br /&gt;
	 {&lt;br /&gt;
		  public int Add(int a, int b)&lt;br /&gt;
		  {&lt;br /&gt;
				return a + b;&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
		  public override object InitializeLifetimeService()&lt;br /&gt;
		  {&lt;br /&gt;
				// sosem szabad törölni, mert nincs életcikluskezelője&lt;br /&gt;
				return null;&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
	 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RemotingServer / TextServer.cs===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
using System.Net;&lt;br /&gt;
&lt;br /&gt;
namespace RemotingServer&lt;br /&gt;
{&lt;br /&gt;
	 class TextServer : IDisposable&lt;br /&gt;
	 {&lt;br /&gt;
		  UdpClient connection;&lt;br /&gt;
&lt;br /&gt;
		  public TextServer()&lt;br /&gt;
		  {&lt;br /&gt;
				connection = new UdpClient(9001);&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
		  public void OnTimer()&lt;br /&gt;
		  {&lt;br /&gt;
				if (connection.Available == 0)&lt;br /&gt;
					 return;&lt;br /&gt;
				IPEndPoint from = new IPEndPoint(IPAddress.Any, 0);&lt;br /&gt;
				byte[] packet = connection.Receive(ref from);&lt;br /&gt;
				// ha nem adom  meg, hogy hova menjen, akkor oda küldené, ahova korábban&lt;br /&gt;
				// a connectben megadtam neki&lt;br /&gt;
				packet[2] = (byte)(packet[0] + packet[1]);&lt;br /&gt;
				connection.Send(packet, packet.Length, from);&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
		  public void Dispose()&lt;br /&gt;
		  {&lt;br /&gt;
				connection.Close();&lt;br /&gt;
		  }&lt;br /&gt;
	 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RemotingServer / Program.cs===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using System.Runtime.Remoting;&lt;br /&gt;
using System.Runtime.Remoting.Channels;&lt;br /&gt;
using System.Runtime.Remoting.Channels.Tcp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace RemotingServer&lt;br /&gt;
{&lt;br /&gt;
	 static class Program&lt;br /&gt;
	 {&lt;br /&gt;
		  /// &amp;lt;summary&amp;gt;&lt;br /&gt;
		  /// The main entry point for the application.&lt;br /&gt;
		  /// &amp;lt;/summary&amp;gt;&lt;br /&gt;
		  [STAThread]&lt;br /&gt;
		  static void Main()&lt;br /&gt;
		  {&lt;br /&gt;
				Application.EnableVisualStyles();&lt;br /&gt;
				Application.SetCompatibleTextRenderingDefault(false);&lt;br /&gt;
&lt;br /&gt;
				Calc calc = new Calc();&lt;br /&gt;
				RemotingServices.Marshal(calc, &amp;quot;Tibi&amp;quot;);&lt;br /&gt;
				ChannelServices.RegisterChannel(new TcpChannel(9000), false);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
				Application.Run(new Form1());&lt;br /&gt;
		  }&lt;br /&gt;
	 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RemotingServer / Form1.cs===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ComponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
&lt;br /&gt;
namespace RemotingServer&lt;br /&gt;
{&lt;br /&gt;
	 public partial class Form1 : Form&lt;br /&gt;
	 {&lt;br /&gt;
		  TextServer ts = new TextServer();&lt;br /&gt;
		  public Form1()&lt;br /&gt;
		  {&lt;br /&gt;
				InitializeComponent();&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
		  private void timer_Tick(object sender, EventArgs e)&lt;br /&gt;
		  {&lt;br /&gt;
				ts.OnTimer();&lt;br /&gt;
		  }&lt;br /&gt;
	 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RemotingClient / TSClient.cs===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using RemotingCommon2;&lt;br /&gt;
using System.Runtime.Remoting.Proxies;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using System.Runtime.Remoting.Messaging;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
using System.Net;&lt;br /&gt;
&lt;br /&gt;
namespace RemotingClient&lt;br /&gt;
{&lt;br /&gt;
	 class TSClient : RealProxy&lt;br /&gt;
	 {&lt;br /&gt;
		  public TSClient() : base (typeof(ICalc))&lt;br /&gt;
		  {&lt;br /&gt;
&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
		  public ICalc GetRemoteObject()&lt;br /&gt;
		  {&lt;br /&gt;
				return (ICalc) GetTransparentProxy();&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
		  public override IMessage Invoke(IMessage msg)&lt;br /&gt;
		  {&lt;br /&gt;
				MethodCall call = new MethodCall(msg);&lt;br /&gt;
				UdpClient client = new UdpClient(Dns.GetHostName(), 9001);&lt;br /&gt;
				client.Send(new byte[] { (byte)(int)call.InArgs[0], (byte)(int)call.InArgs[1], 0 }, 3);&lt;br /&gt;
				IPEndPoint ep = new IPEndPoint(IPAddress.Any, 0);&lt;br /&gt;
				byte[] ret = client.Receive(ref ep);&lt;br /&gt;
&lt;br /&gt;
				MessageBox.Show(ret[2].ToString());&lt;br /&gt;
				return new ReturnMessage((int)ret[2], null, 0, null, call);&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===RemotingClient / Form1.cs===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ComponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
using RemotingCommon2;&lt;br /&gt;
&lt;br /&gt;
namespace RemotingClient&lt;br /&gt;
{&lt;br /&gt;
	 public partial class Form1 : Form&lt;br /&gt;
	 {&lt;br /&gt;
		  public Form1()&lt;br /&gt;
		  {&lt;br /&gt;
				InitializeComponent();&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
		  private void addbutton_Click(object sender, EventArgs e)&lt;br /&gt;
		  {&lt;br /&gt;
				ICalc obj = (ICalc) Activator.GetObject(typeof(ICalc), &amp;quot;tcp://localhost:9000/Tibi&amp;quot;);&lt;br /&gt;
				textBox3.Text = obj.Add(int.Parse(txtA.Text), int.Parse(txtB.Text)).ToString();&lt;br /&gt;
		  }&lt;br /&gt;
&lt;br /&gt;
		  private void button1_Click(object sender, EventArgs e)&lt;br /&gt;
		  {&lt;br /&gt;
				TSClient c = new TSClient();&lt;br /&gt;
				c.GetRemoteObject().Add(int.Parse(txtA.Text), int.Parse(txtB.Text)).ToString();&lt;br /&gt;
		  }&lt;br /&gt;
	 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- [[KarakoMiklos|palacsint]] - 2007.10.23.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoszak]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>