Hosting a server
Hosting on LAN
By default, by simply using the Lacewing Blue/Relay Server object's Relay Server > Host action, the Relay Protocol server will be available to the same computer it's on.
If the server machine's firewall settings permit, the server will be visible to LAN.
(You can connect to "localhost" for same-machine, or IP "127.0.0.1". That's only useful if your server and the client are on the same machine; other clients on LAN won't be able to connect via localhost/127.)
So for LAN play, all you need to do is use host action and OK it on the firewall.
Once it's hosting on LAN, you can connect to the server program on your server machine, from anywhere in LAN, by connecting to the server machine's LAN IP.
You can get the LAN IP of a machine, also known as local IP, via extensions like LocalIP++, or by running Command Prompt and using the ipconfig command.
Typically, local IPs start with 192.168.x.x, or 10.x.x.x, or 172.x.x.x.
Example of ipconfig.
Hosting on the Internet
First follow the steps for LAN hosting above, then continue.
Internet hosting has a couple extra steps.
First, you'll have to look up router port forwarding, so internet-originating connections can get passed from outside of your router to the server machine on your LAN.
In your router's settings page, you'll have to unblock any ports in use.
- Lacewing Relay Server: unblock the Lacewing Relay port on both TCP and UDP, and unblock the Flash policy port if you're using that; Flash policy uses TCP 843, always.
- Lacewing Webserver: the typical port for HTTP is TCP 80, and HTTPS is TCP 443.
If your router asks for both internal and external port, then use the same port numbers for both of them.
Typically Lacewing Relay Server uses port 6121, but you specify it in the Relay Server > Host action.
After port forwarding on the router, you should have access from anywhere on the internet to your Relay Server.
Test it by attempting a connection via your remote IP address; you can find your remote IP on this webpage, or from a simple Google search "what is my IP".
When connecting, don't forget to put in the port if necessary; see examples of how under the Relay Client > Connect action.
If a connection to your remote IP fails, but connection over LAN (by connecting to local IP) works, you may have your Internet Service Provider (ISP) blocking incoming connections on their firewall before it even reaches your router.
For that, you will have to talk to your ISP to get it unblocked, or use their control panel settings.
There is a small possibility your antivirus on the server machine will have different settings from your firewall, causing the antivirus to block incoming connections, so test that too.
Internet hosting via domain
If you are trying to use a domain, so "example.com" goes to your server, you will have to sign up with a DNS provider, which maintain lists of domains and their remote IPs.
DNS hosting is a paid service, usually, usually $5-15 a year. It will not hide your remote IP address; it is necessary to give that to clients to connect to. DNS registrations are usually required to give a physical address, so be aware of your privacy. Some providers offer to hide your details, usually for extra cash.
Static and dynamic IP
A static IP address is an IP that is kept the same by your Internet Service Provider (ISP) regardless of whether the router reboots or otherwise disconnects from the ISP.
The opposite is dynamic IP, which can be changed by a router disconnect/reboot.
Usually, ISPs provide static IPs as a paid add-on to your ISP package.
If you do not use a static IP, then you will need to sign up to a dynamic DNS service (sometimes called DynDNS or DDNS), which your router may have built-in support for.
A DynDNS service will host its own DNS records, and update whenever your router's IP changes. They normally give you a subdomain of their main website (e.g. HopTo service gives you example.hopto.org), and manage all requests to that subdomain by redirecting them to the router's IP, like a normal DNS would.
DynDNS are often free, and automatic updating is built into some newer routers. A common DynDNS service is NoIP.com.
It is better to use a static IP for serious long-term hosting, as it will not use a third-party service or require you to use their domain.
It's worth noting IP addresses for a domain are cached, and if your IP changes, then any clients with that cached IP may fail to connect for several days, until their cached records expire.
It is possible to change how long DNS records are cached, and DynDNS make use of this feature, but without a cache the apps have to look up the IP each time.
You can clear your OS's DNS cache by using Command Prompt command ipconfig /flushdns.
Note that some web browsers use their own cache, which you can clear from browser settings – but this will only affect the HTTP/HTTPS Lacewing Webserver.
An IPv6 address, in which case it will be in four-digit hexadecimal blocks separated by colons. For an example; "2001:0000:3238:DFE1:63::FEFB".
Due to IPv6's lengths, various shortening methods are applied; for example, 0063 will be reduced to 63.
IPv4 addresses mapped to IPv6 will look more like "::ffff:52e5:db02". Note that Blue will converted IPv4-mapped IPv6 addresses to their IPv4 counterpart for any IP expressions.
Relay doesn't support IPv6 due to bugs in the design, rather than by intention.
IPv6 is less widely adopted than IPv4, but is becoming more of a necessity, as many regions were assigned small IPv4 blocks that couldn't be distributed sufficiently. For example, India and Asia have too small a block of IPv4 to match their growing population and technology.
Your ISP should support IPv6 connections, but if they do not, there is a good chance IPv6 clients can still access your server via technologies like 6to4 or Teredo tunneling (these are done by the client's ISP, and invisible to the end users). But these technologies aren't a fix-all and you run the risk of losing the clients that aren't able to use those, so you should try to find an ISP or hosting service that supports IPv6 natively.
Securing your server
There is also an example on IP banning in Security.