UBrowser
Class UBrowserLocalLink

source: e:\games\UnrealTournament\UBrowser\Classes\UBrowserLocalLink.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Info
         |
         +--Engine.InternetInfo
            |
            +--IpDrv.InternetLink
               |
               +--IpDrv.UdpLink
                  |
                  +--UBrowser.UBrowserLocalLink
Direct Known Subclasses:None

class UBrowserLocalLink
extends IpDrv.UdpLink

//============================================================================= // UBrowserLocalLink: Receives LAN beacons from servers. //=============================================================================
Variables
 string BeaconProduct
 UBrowserLocalFact OwnerFactory
 int ServerBeaconPort


Function Summary
 void BroadcastBeacon()
 void Start()
 void Timer()



Source Code


00001	//=============================================================================
00002	// UBrowserLocalLink: Receives LAN beacons from servers.
00003	//=============================================================================
00004	class UBrowserLocalLink extends UdpLink
00005		transient;
00006	
00007	// Misc
00008	var UBrowserLocalFact			OwnerFactory;
00009	
00010	// Config
00011	var string						BeaconProduct;
00012	var int							ServerBeaconPort;
00013	
00014	function Start()
00015	{
00016		local int p;
00017	
00018		if( BindPort() == 0 )
00019		{
00020			OwnerFactory.QueryFinished(False, "UBrowserLocalLink: Could not bind to a free port.");
00021			return;
00022		}
00023		BroadcastBeacon();
00024	}
00025	
00026	function Timer()
00027	{
00028		OwnerFactory.QueryFinished(True);
00029	}
00030	
00031	function BroadcastBeacon()
00032	{
00033		local IpAddr Addr;
00034		local int i;
00035	
00036		Addr.Addr = BroadcastAddr;
00037	
00038		for(i=0;i<10;i++)
00039		{
00040			Addr.Port = ServerBeaconPort + i;
00041			SendText( Addr, "REPORTQUERY" );
00042		}
00043	}
00044	
00045	event ReceivedText( IpAddr Addr, string Text )
00046	{
00047		local int n;
00048		local int QueryPort;
00049		local string Address;
00050	
00051		n = len(BeaconProduct);
00052		if( Left(Text,n+1) ~= (BeaconProduct$" ") )
00053		{
00054			QueryPort = int(Mid(Text, n+1));
00055			Address = IpAddrToString(Addr);
00056			Address = Left(Address, InStr(Address, ":"));
00057			OwnerFactory.FoundServer(Address, QueryPort, "", BeaconProduct);
00058		}
00059	}
00060	
00061	defaultproperties
00062	{
00063	}

End Source Code