public bool Connect(string ip, ushort port, string name) { if (tcpClient == null) { initializeClient(); } else { if (tcpClient.IsConnected()) { throw new Exception("You are allready connected to a server, try to disconnect first!"); } } if (ip == "localhost") { ip = "127.0.0.1"; } if (!tcpClient.Connect(ip, port)) { tcpClient.Dispose(); tcpClient = null; return(false); } tcpClient.SendAction("CONNECT", name, Encoding.Unicode); return(true); }
public void Disconnect(string name) { if (tcpClient != null) { if (tcpClient.IsConnected()) { tcpClient.SendAction("DISCONNECT", name, Encoding.Unicode); tcpClient = null; } } }
public void SameNameError(Message message) { tcpClient = null; if (mainApp.InvokeRequired) { mainApp.Invoke((Action <string>)mainApp.WriteMessage, new object[] { message.ToString(Encoding.Unicode) }); } else { mainApp.WriteMessage(message.ToString(Encoding.Unicode)); } }
public async Task Start(string ip, ushort port) { // Use namespace filter to only get the actions of this client using var client = new EasyTcpActionClient(nameSpace: "EasyTcp3.Examples.ReverseShell.Client.Actions"); client.OnUnknownAction += (s, m) => client.Send("Unknown action"); client.OnError += (s, e) => client.Send($"Client error: {e.Message}"); client.OnDisconnect += async(s, c) => await Start(ip, port); while (!await client.ConnectAsync(ip, port)) { await Task.Delay(ConnectTimeout); } await Task.Delay(-1); }
public async Task Start(string ip, ushort port) { // Use namespace filter to only get the actions of this client using var client = new EasyTcpActionClient(nameSpace: "EasyTcp3.Examples.ReverseShell.Client.Actions"); client.OnUnknownAction += // Send message to server if action is unknown (s, m) => client.Send("Unknown action"); client.OnError += (s, e) => client.Send($"Client error: {e.Message}"); client.OnDisconnect += // Try to reconnect if disconnected from server async(s, c) => await Connect(client, ip, port); await Connect(client, ip, port); // Connect to server await Task.Delay(-1); }
public void TestClientActionsTrigger() { ushort port = TestHelper.GetPort(); using var server = new EasyTcpServer().Start(port); using var client = new EasyTcpActionClient(); client.OnDataReceive += (sender, message) => Console.WriteLine("123"); Assert.IsTrue(client.Connect(IPAddress.Loopback, port)); string data = "test"; foreach (var c in server.GetConnectedClients()) { var reply = c.SendActionAndGetReply("ECHO", data); Assert.AreEqual(data, reply.ToString()); } }
public async Task TestDetectAllTypes() { var client = new EasyTcpActionClient(nameSpace: "EasyTcp3.Test.Actions.Types"); for (int i = 1; i <= 7; i++) { await client.ExecuteAction(i); Assert.AreEqual(i, TestActions.Counter); } var server = new EasyTcpActionServer(nameSpace: "EasyTcp3.Test.Actions.Types"); TestActions.Counter = 0; for (int i = 1; i <= 7; i++) { await server.ExecuteAction(i); Assert.AreEqual(i, TestActions.Counter); } }
private void TcpClient_OnDisconnect(object sender, EasyTcpClient e) { tcpClient = null; }
public void initializeClient() { tcpClient = new EasyTcpActionClient(); tcpClient.OnError += TcpClient_OnError; tcpClient.OnDisconnect += TcpClient_OnDisconnect; }
public void DetectAllTypes() { var client = new EasyTcpActionClient(nameSpace: "DetectTestActions"); Assert.AreEqual(7, client.Actions.Count); }