From 52271d580f9c4208b3280ed0dc6088585dd83356 Mon Sep 17 00:00:00 2001 From: Fan-Wu Yang Date: Wed, 20 Sep 2017 21:38:49 +1200 Subject: [PATCH] CHanged ip to local ip because port forwarding may be subjective to change. --- .../network/HttpMatchBrowserClient.java | 3 ++- .../network/HttpMatchBrowserHost.java | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserClient.java b/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserClient.java index 25b28ac7..c4a14bb9 100644 --- a/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserClient.java +++ b/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserClient.java @@ -27,7 +27,8 @@ public class HttpMatchBrowserClient extends Thread { for (int i = 0; i < cons.length(); i++) { JSONObject con = (JSONObject) cons.get(i); - connections.add(new RaceConnection((String) con.get("ip_address"), con.getInt("port"), "Boat Game")); + //using "ip_address" will give their public ip + connections.add(new RaceConnection((String) con.get("local_ip"), con.getInt("port"), "Boat Game")); } Thread.sleep(5000); diff --git a/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserHost.java b/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserHost.java index 1550e407..bd91c5f9 100644 --- a/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserHost.java +++ b/racevisionGame/src/main/java/visualiser/network/HttpMatchBrowserHost.java @@ -13,7 +13,10 @@ import org.apache.http.message.BasicNameValuePair; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; +import java.net.InetAddress; +import java.net.NetworkInterface; import java.util.ArrayList; +import java.util.Enumeration; import java.util.List; /** @@ -35,8 +38,32 @@ public class HttpMatchBrowserHost extends Thread { httpMatchBrowserHost = this; httpClient = HttpClients.createDefault(); + Enumeration e = NetworkInterface.getNetworkInterfaces(); + int count = 0; + String ip = ""; + while(e.hasMoreElements()) + { + if (count > 3){ + break; + } + NetworkInterface n = (NetworkInterface) e.nextElement(); + Enumeration ee = n.getInetAddresses(); + while (ee.hasMoreElements()) + { + InetAddress i = ee.nextElement(); + if (count == 3){ + ip = i.getHostAddress(); + System.out.println(ip); + count++; + break; + } + count++; + } + } + // Request parameters and other properties. params = new ArrayList<>(2); + params.add(new BasicNameValuePair("ip", ip)); params.add(new BasicNameValuePair("port", "4942")); params.add(new BasicNameValuePair("magic", "Thomas and Seng"));