You are an unregistered user, you can register here
Navigation

Information

Site

Donations
If you wish to make a donation you can by clicking the image below.


 
Go Back   The Unreal Admins Page > Forums > Unreal Admins > Unreal > Unreal Server - General Chat

Reply
Thread Tools Display Modes
  #1  
Unread 11th June, 2008, 06:10 PM
Lar Lar is offline
Forum Newcomer
 
Join Date: Feb 2004
Posts: 8
Default Unreal server and Vista

Greetings!!

A friend and I decided to play some Unreal via LAN the other day, but we came across an unusual problem. As the title states, we were trying to run a server on Vista. The game itself runs fine, it's just that when we created a server, we weren't able to see it from any other client on the LAN. I'm quite familiar with port forwarding (not needed on LAN) and opening ports on firewalls. All of that checked out, but we still weren't able to see the server on the LAN. I did some investigating and found this in the log file:

Code:
Log: UdpServerQuery DmAriza.UdpServerQuery0 (Function IpServer.UdpServerQuery.PreBeginPlay:002E) BindPort: bind failed
UdpServerQuery: Port failed to bind.
The game port, 7777, bound just fine, but UdpServerQuery port, 7778, did not. Also, ServerBeaconPort, 7775, bound as well. I dug a little deeper and discovered that the native "BindPort()" function wasn't incrementing the port number like it should. When UdpServerQuery requests a port to bind to, it always tries 7777 first (Level.Game.GetServerPort()), but it will fail. the BindPort() function is suppose to increment the port number and try again before returning the result to UdpServerQuery.

I loaded up other games based on UE1 tech (UT99, Rune, and WoT), and the same bug occurred with all of them. I also loaded UT2004, but it worked without problems. I did some more digging to find out why UT2004 worked, but the others didn't.

The function responsible for requesting the query port looks like this in Unreal:
Code:
class UdpServerQuery extends UdpLink config;
...
...
// Initialize.
function PreBeginPlay()
{
    // Set the Tag
    Tag = QueryName;

    // Bind the listen socket
    if( !BindPort(Level.Game.GetServerPort(), true) )
    {
	  Log("UdpServerQuery: Port failed to bind.");
	  return;
    }
}
In UT2004, the function looks like this:
Code:
class UdpGameSpyQuery extends UdpLink config;
...
...
function PreBeginPlay()
{
    local int boundport, requestport;

    // Set the Tag
    Tag = QueryName;

    // Bind the listen socket
    requestport = Level.Game.GetServerPort()+10;
    boundport = BindPort(requestport, true);
    if( boundport == 0 )
    {
	  Log("UdpServerQuery: Port failed to bind.");
	  return;
    }
    Log("UdpServerQuery(crt): Port "$boundport$" successfully bound.");
...
...
}
Notice how 10 is added to Level.Game.GetServerPort() before it's passed to the BindPort() call. I did a little experiment and created a modified version of UdpServerQuery that added 1 to Level.Game.GetServerPort() in the BindPort() call. I ran the server, and lo and behold it worked!! That told me that BindPort() wasn't incrementing like it should.

The gist of my whole spiel is to find out if anyone else has had this problem running an Unreal server on Vista and if a solution was found. I appreciate any help that is given.

-Later!

Last edited by Lar : 13th June, 2008 at 07:03 AM.
Reply With Quote
  #2  
Unread 15th September, 2008, 12:03 PM
holytotemic holytotemic is offline
Forum Newcomer
 
Join Date: Sep 2008
Posts: 2
Default

Has anyone tried running windows 2000 or xp in a virtual box and running the server from within the virtual box when having this issue with vista. im going to try it but i figured i'd ask.
Reply With Quote
  #3  
Unread 15th September, 2008, 09:45 PM
holytotemic holytotemic is offline
Forum Newcomer
 
Join Date: Sep 2008
Posts: 2
Default

Ok i only run lan games so i dont know how this will work for you. proly if you leave out hamachi it will work just fine for hosting games on the net. here we go: first get hamachi and install. then get a virtual machine program like virtualbox. install windows 2000 and hamachi on the virtual box. copy your unreal folder to the virtual machine through the use of shared folders. start a server on the virtual box while hamachi is running. now on your box and any other computer that wants to connect (they need hamachi connected to the main hamachi server too) open unreal and open location and type the ip addy listed on the hamachi server on the virtual machine..voila a hosted lan server on a vista 32 or 64 system. (your main machine should be running hamachi as a server and the virtual box should be connected to the main hamachi server)


-hey not too pretty but very functional.

Last edited by holytotemic : 16th September, 2008 at 12:30 AM.
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 09:59 AM.


 

All pages are copyright The Unreal Admins Page.
You may not copy any pages without our express permission.