From 119f6384b651ee10d54094e295bbd005301eaee0 Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 14:18:56 +0200 Subject: [PATCH 1/3] tunnel created? --- RH-Engine/JSONParser.cs | 13 ++++++++++++- RH-Engine/Program.cs | 36 +++++++++++++++++++++++------------- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/RH-Engine/JSONParser.cs b/RH-Engine/JSONParser.cs index d42adb6..3f880fd 100644 --- a/RH-Engine/JSONParser.cs +++ b/RH-Engine/JSONParser.cs @@ -33,10 +33,11 @@ namespace RH_Engine Newtonsoft.Json.Linq.JArray data = jsonData.data; foreach (dynamic d in data) { - foreach(PC pc in PCs) + foreach (PC pc in PCs) { if (d.clientinfo.host == pc.host && d.clientinfo.user == pc.user) { + Console.WriteLine("connecting to {0}, on {1} with id {2}", pc.user, pc.host, d.id); return d.id; } } @@ -45,6 +46,16 @@ namespace RH_Engine return null; } + public static string GetTunnelID(string json) + { + dynamic jsonData = JsonConvert.DeserializeObject(json); + if (jsonData.data.status == "ok") + { + return jsonData.data.id; + } + return null; + } + } } diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 89d5beb..6f9e1ae 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -10,7 +10,7 @@ namespace RH_Engine internal class Program { private static PC[] PCs = { - new PC("DESKTOP-M2CIH87", "Fabian"), + new PC("DESKTOP-M2CIH87", "F@bian"), new PC("T470S", "Shinichi"), new PC("NA", "Sem"), new PC("NA", "Wouter"), @@ -34,7 +34,7 @@ namespace RH_Engine stream.Write(res); - Console.WriteLine("sent message " + message); + //Console.WriteLine("sent message " + message); } public static string ReadPrefMessage(NetworkStream stream) @@ -50,7 +50,6 @@ namespace RH_Engine byte[] buffer = new byte[length]; int totalRead = 0; - //read bytes until stream indicates there are no more do { int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); @@ -63,16 +62,26 @@ namespace RH_Engine private static void CreateConnection(NetworkStream stream) { - //WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - //string msg = ReadPrefMessage(stream); - //Console.WriteLine(msg); - //string id = JSONParser.GetSessionID(msg, PCs); - - //Console.WriteLine(id); WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - string result = ReadPrefMessage(stream); - Console.WriteLine(result); - //JSONParser.Parse(result); + string id = JSONParser.GetSessionID(ReadPrefMessage(stream), PCs); + + string tunnelCreate = "{\"id\" : \"tunnel/create\", \"data\" : {\"session\" : \"" + id + "\"}}"; + + WriteTextMessage(stream, tunnelCreate); + + string tunnelResponse = ReadPrefMessage(stream); + + Console.WriteLine(tunnelResponse); + + string tunnelID = JSONParser.GetTunnelID(tunnelResponse); + Console.WriteLine("tunnelID is: " + tunnelID); + + string sceneReset = "{\"id\" : \"tunnel/send\", \"data\" : {\"dest\" : \"" + tunnelID + "\",\"data\" :{\"id\" : \"scene/reset\",\"data\" : { }}}}}"; + //string sceneReset = "{\"id\" : \"scene/reset\"}"; + + WriteTextMessage(stream, sceneReset); + + Console.WriteLine(ReadPrefMessage(stream)); } } @@ -87,4 +96,5 @@ namespace RH_Engine public string host { get; } public string user { get; } } -} \ No newline at end of file +} + From cb1ca0b671cf2c66f7334ca4eff0803389326e58 Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 14:26:39 +0200 Subject: [PATCH 2/3] fix? --- RH-Engine/Program.cs | 100 ------------------------------------------- 1 file changed, 100 deletions(-) delete mode 100644 RH-Engine/Program.cs diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs deleted file mode 100644 index 6f9e1ae..0000000 --- a/RH-Engine/Program.cs +++ /dev/null @@ -1,100 +0,0 @@ -using System; -using System.IO; -using System.Net.Sockets; -using System.Runtime.Intrinsics.X86; -using System.Text; - -namespace RH_Engine -{ - - internal class Program - { - private static PC[] PCs = { - new PC("DESKTOP-M2CIH87", "F@bian"), - new PC("T470S", "Shinichi"), - new PC("NA", "Sem"), - new PC("NA", "Wouter"), - new PC("NA", "Ralf"), - new PC("NA", "Bart") }; - private static void Main(string[] args) - { - TcpClient client = new TcpClient("145.48.6.10", 6666); - - CreateConnection(client.GetStream()); - - } - - public static void WriteTextMessage(NetworkStream stream, string message) - { - byte[] msg = Encoding.ASCII.GetBytes(message); - byte[] res = new byte[msg.Length + 4]; - - Array.Copy(BitConverter.GetBytes(msg.Length), 0, res, 0, 4); - Array.Copy(msg, 0, res, 4, msg.Length); - - stream.Write(res); - - //Console.WriteLine("sent message " + message); - } - - public static string ReadPrefMessage(NetworkStream stream) - { - byte[] lengthBytes = new byte[4]; - - stream.Read(lengthBytes, 0, 4); - - int length = BitConverter.ToInt32(lengthBytes); - - Console.WriteLine("length is: " + length); - - byte[] buffer = new byte[length]; - int totalRead = 0; - - do - { - int read = stream.Read(buffer, totalRead, buffer.Length - totalRead); - totalRead += read; - Console.WriteLine("ReadMessage: " + read); - } while (totalRead < length); - - return Encoding.UTF8.GetString(buffer, 0, totalRead); - } - - private static void CreateConnection(NetworkStream stream) - { - WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - string id = JSONParser.GetSessionID(ReadPrefMessage(stream), PCs); - - string tunnelCreate = "{\"id\" : \"tunnel/create\", \"data\" : {\"session\" : \"" + id + "\"}}"; - - WriteTextMessage(stream, tunnelCreate); - - string tunnelResponse = ReadPrefMessage(stream); - - Console.WriteLine(tunnelResponse); - - string tunnelID = JSONParser.GetTunnelID(tunnelResponse); - Console.WriteLine("tunnelID is: " + tunnelID); - - string sceneReset = "{\"id\" : \"tunnel/send\", \"data\" : {\"dest\" : \"" + tunnelID + "\",\"data\" :{\"id\" : \"scene/reset\",\"data\" : { }}}}}"; - //string sceneReset = "{\"id\" : \"scene/reset\"}"; - - WriteTextMessage(stream, sceneReset); - - Console.WriteLine(ReadPrefMessage(stream)); - } - } - - - public readonly struct PC - { - public PC(string host, string user) - { - this.host = host; - this.user = user; - } - public string host { get; } - public string user { get; } - } -} - From 5f18b3e7727204ecb6db916fd8a06d6f42f6ae0c Mon Sep 17 00:00:00 2001 From: shinichi Date: Wed, 16 Sep 2020 14:28:43 +0200 Subject: [PATCH 3/3] working ish --- RH-Engine/Program.cs | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/RH-Engine/Program.cs b/RH-Engine/Program.cs index 4de2298..1d7e4d0 100644 --- a/RH-Engine/Program.cs +++ b/RH-Engine/Program.cs @@ -63,20 +63,28 @@ namespace RH_Engine private static void CreateConnection(NetworkStream stream) { - //WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - //string msg = ReadPrefMessage(stream); - //Console.WriteLine(msg); - //string id = JSONParser.GetSessionID(msg, PCs); - - //Console.WriteLine(id); WriteTextMessage(stream, "{\r\n\"id\" : \"session/list\"\r\n}"); - string result = ReadPrefMessage(stream); - //Console.WriteLine(result); - foreach (var s in JSONParser.GetUsers(result)) - { - Console.WriteLine(s); - } + string id = JSONParser.GetSessionID(ReadPrefMessage(stream), PCs); + + string tunnelCreate = "{\"id\" : \"tunnel/create\", \"data\" : {\"session\" : \"" + id + "\"}}"; + + WriteTextMessage(stream, tunnelCreate); + + string tunnelResponse = ReadPrefMessage(stream); + + Console.WriteLine(tunnelResponse); + + string tunnelID = JSONParser.GetTunnelID(tunnelResponse); + Console.WriteLine("tunnelID is: " + tunnelID); + + string sceneReset = "{\"id\" : \"tunnel/send\", \"data\" : {\"dest\" : \"" + tunnelID + "\",\"data\" :{\"id\" : \"scene/reset\",\"data\" : { }}}}}"; + //string sceneReset = "{\"id\" : \"scene/reset\"}"; + + WriteTextMessage(stream, sceneReset); + + Console.WriteLine(ReadPrefMessage(stream)); } + }