You can run the server tests from the "External" tab in the ServeToMe window. These test run automatically and attempt to verify that the different components of the server are working as expected.
The server tests window
The "servetome-server" is separate to the user-interface application. For ServeToMe to work, the server must be installed and running.
Four error messages are possible here:
All of these issues should be addressed by using the "Force reinstall server..." from the "File" menu in the menubar then pressing "Start server" in the ServeToMe window. If this still does not work, you should restart your computer and try this again.
An administrator password is required to perform the installation.
On success, the detail information will show information about the running server process. An example output from ServeToMe on a Mac shows the path of the ServeToMe helper tool and some minor process information:
0 3871 1 0 12:16AM ?? 0:00.18 /Library/PrivilegedHelperTools/com.zqueue.servetome-server
In this test, the top-level "is running" page is fetched from the ServeToMe server to verify that the server is running and responding correctly to HTTP requests.
The response should look approximately like the following:
<html><head><title>ServeToMe</title></head><body><h1>ServeToMe</h1><p>ServeToMe version 4.0.1 is running normally.</p><p>Use the <a href="http://zqueue.com/streamtome/">StreamToMe</a> application on your Mac, iPhone, iPad or iPod Touch to view media files.</p></body></html>
If this test succeeds, ServeToMe is running and working. However, it may still be possible for you to have connection problems due to network or network software problems that are outside ServeToMe or StreamToMe's direct control.
A first point to note is that this test sends a request from the local computer to a server running on the local computer. This means that it will not be affected by any firewall or anti-virus software. If this step succeeds but any requests sent from another computer on ServeToMe's port fail, then it is still possible that a firewall or anti-virus software is blocking ServeToMe.
The other most common reason why you might have trouble connecting from another computer or device when this test succeeds is that there may not be an actual network path between the other computer or device and this one. Keep in mind that most routers create private local subnetworks and unless two devices are connected the same way to the same router, they may be on separate private local subnetworks and therefore may be unreachable from each other.
Bonjour is a protocol for advertising services on the local network. ServeToMe uses Bonjour to advertise its own existence to StreamToMe apps running on the local network.
Sample successful response:
{ domain = 1; errorCode = 0; flags = 2; name = 1; regType = 1; }
If any error message is returned from the Bonjour service creation, it will be displayed here. The possible errorCode values are displayed in the UPnP-IGD or NAT-PMP service found section.
In this step, an attempt is made to discover ServeToMe's advertised service. A successful response shows all addresses on the local computer through which the server is accessible:
{ "10.211.55.2" = 9969; "10.37.129.2" = 9969; "192.168.1.2" = 9969; "fe80::224:36ff:feb5:a481" = 9969; }
If no addresses are found, the message "Bonjour service not found or not responding." will be displayed.
Since this is a local computer connection to itself, the notes from "Is the server responding to connections" also apply.
Connecting to ServeToMe from outside the local network requires a connection from outside the local network to reach the ServeToMe computer inside the local network.
Most routers and modems create private local subnetworks and private local subnetworks cannot receive incoming connections unless the gateway device is explicitly told to allow incoming connections. UPnP-IGD and NAT-PMP are two automated ways that ServeToMe tries to request that the gateway device allow incoming connections.
This test shows whether a search for an UPnP-IGD or NAT-PMP service succeeded. A sample response:
{ errorCode = 0; externalAddress = "123.45.67.89"; externalPort = 9969; flags = 0; interfaceIndex = 6; internalPort = 9969; protocol = 32; ttl = 7200; verifyerror = ""; }
Possible errorCodes from this step include:
kDNSServiceErr_NoError = 0, kDNSServiceErr_Unknown = -65537, /* 0xFFFE FFFF */ kDNSServiceErr_NoSuchName = -65538, kDNSServiceErr_NoMemory = -65539, kDNSServiceErr_BadParam = -65540, kDNSServiceErr_BadReference = -65541, kDNSServiceErr_BadState = -65542, kDNSServiceErr_BadFlags = -65543, kDNSServiceErr_Unsupported = -65544, kDNSServiceErr_NotInitialized = -65545, kDNSServiceErr_AlreadyRegistered = -65547, kDNSServiceErr_NameConflict = -65548, kDNSServiceErr_Invalid = -65549, kDNSServiceErr_Firewall = -65550, kDNSServiceErr_Incompatible = -65551, /* client library incompatible with daemon */ kDNSServiceErr_BadInterfaceIndex = -65552, kDNSServiceErr_Refused = -65553, kDNSServiceErr_NoSuchRecord = -65554, kDNSServiceErr_NoAuth = -65555, kDNSServiceErr_NoSuchKey = -65556, kDNSServiceErr_NATTraversal = -65557, kDNSServiceErr_DoubleNAT = -65558, kDNSServiceErr_BadTime = -65559, /* Codes up to here existed in Tiger */ kDNSServiceErr_BadSig = -65560, kDNSServiceErr_BadKey = -65561, kDNSServiceErr_Transient = -65562, kDNSServiceErr_ServiceNotRunning = -65563, /* Background daemon not running */ kDNSServiceErr_NATPortMappingUnsupported = -65564, /* NAT doesn't support NAT-PMP or UPnP */ kDNSServiceErr_NATPortMappingDisabled = -65565, /* NAT supports NAT-PMP or UPnP but it's disabled by the administrator */ kDNSServiceErr_NoRouter = -65566, /* No router currently configured (probably no network connectivity) */ kDNSServiceErr_PollingMode = -65567, kDNSServiceErr_Timeout = -65568
This step applies a few extra verification steps to the results from the previous test.
The most common issue that this step will report is a warning where the external port is different to the internal port. This happens because the desired port (the local port) was already in use in the gateway.
There are two reasons why the desired port might already be in use:
In this test, a remote computer is asked to make a test connection to your ServeToMe server to verify that it is correctly reachable from outside your local network.
The response should look approximately like the following:
<html><head><title>ServeToMe</title></head><body><h1>ServeToMe</h1><p>ServeToMe version 4.0.1 is running normally.</p><p>Use the <a href="http://zqueue.com/streamtome/">StreamToMe</a> application on your Mac, iPhone, iPad or iPod Touch to view media files.</p></body></html>
If this test succeeds, your ServeToMe computer is correctly reachable from non-local locations. If this test fails, your computer is almost certainly not reachable from outside the local network.