public void ExecutePackage(Package package) { _client = new TcpClient(); _client.Connect(_endPoint); if (_client.Connected) { NetworkStream stream = _client.GetStream(); stream.Write(package.ByteValue(), 0, package.Length()); } _client.Close(); }
public string ExecuteQuestion(Package package, bool returnDecimal) { string response = ""; _client = new TcpClient(); _client.Connect(_endPoint); if (_client.Connected) { NetworkStream stream = _client.GetStream(); stream.Write(package.ByteValue(), 0, package.Length()); byte[] responseBuffer = new byte[128]; stream.Read(responseBuffer, 0, responseBuffer.Length); int startPosition = findOccurence(responseBuffer, 0x21); // EOF byte int endPosition = findOccurence(responseBuffer, 0x1A); // EOF byte if(startPosition < endPosition) { if (returnDecimal) { startPosition = endPosition - 2; } byte[] data = new byte[endPosition - startPosition]; Buffer.BlockCopy(responseBuffer, startPosition, data, 0, data.Length); response = Encoding.ASCII.GetString(data); if(returnDecimal) { response = Convert.ToInt32(response, 16).ToString(); } } } _client.Close(); return response; }