public bool Connect(IPAddress ipAddress, int port) { RemoteHostIpAddress = ipAddress; Port = port; _initialized = true; try { _client = new TcpClient(); _client.Connect(RemoteHostIpAddress, Port); NetworkStream networkStream = _client.GetStream(); byte[] buffer = Commands.Hello.ToFlowProtocolAsciiEncodedBytesArray(); if (networkStream.CanWrite) { networkStream.Write(buffer, FromBeginning, buffer.Length); networkStream.Flush(); } string response = string.Empty; if (networkStream.CanRead) { buffer = new byte[EthernetTcpUdpPacketSize]; int bytesRead = networkStream.Read(buffer, FromBeginning, EthernetTcpUdpPacketSize); response = buffer.Take(bytesRead).ToArray().ToFlowProtocolAsciiDecodedString(); } var responseComponents = _parser.ParseResponse(response); if (responseComponents.TryGetValue(Cmd, out string cmd)) { if (cmd.Equals(Commands.Hello)) { return(true); } } } catch (Exception exception) { Debug.WriteLine(exception); _initialized = false; throw new Exception("No connection to server"); } finally { _client.Close(); } return(false); }
public bool Connect(IPAddress ipAddress, int port) { RemoteHostIpAddress = ipAddress; Port = port; _initialized = true; _client = new UdpClient(); try { var serverEndPoint = new IPEndPoint(RemoteHostIpAddress, Port); _client.Connect(serverEndPoint); byte[] buffer = Commands.Hello.ToFlowProtocolAsciiEncodedBytesArray(); _client.Send(buffer, buffer.Length); buffer = _client.Receive(ref serverEndPoint); string response = string.Empty; if (buffer.Length > 0) { response = buffer.ToFlowProtocolAsciiDecodedString(); } var responseComponents = _parser.ParseResponse(response); if (responseComponents.TryGetValue(Cmd, out string cmd)) { if (cmd.Equals(Commands.Hello)) { return(true); } } } catch (Exception exception) { Debug.WriteLine(exception); _initialized = false; throw new Exception("No connection to server"); } finally { _client.Close(); } return(false); }