private EDMResponse DoEDMCommand(EDMRequest request) { EDMResponse response = new EDMResponse(); TcpClient tcpClient; StreamReader sReader; StreamWriter sWriter; try { tcpClient = new TcpClient { ReceiveTimeout = request.ReceiveTimeout, SendTimeout = request.SendTimeout }; tcpClient.Connect(request.Host, request.Port); sReader = new StreamReader(tcpClient.GetStream(), Encoding.UTF8); sWriter = new StreamWriter(tcpClient.GetStream(), Encoding.UTF8); System.Threading.Thread.Sleep(100); sWriter.WriteLine(request.Request); sWriter.Flush(); if (request.IsResponse) { try { response.Response = sReader.ReadLine(); } catch (IOException ex) { response.Error = EDMError.ReadTimeOut; response.ErrorStr = ex.Message; } //catch (OutOfMemoryException ex) //{ // response.ErrorStr = ex.Message; //} sWriter.Close(); tcpClient.Close(); } //if (request.IsResponse) } catch (Exception ex) { response.Error = EDMError.Other; response.ErrorStr = ex.Message; } return(response); }
//private EDMResult GetEDMInfo2(EDMCommand command) //{ // EDMResult result = new EDMResult(); // result.Request = @"{""id"":0,""jsonrpc"":""2.0"",""method"":""miner_getstat1""}"; // TcpClient _tcpclient; // StreamReader _sReader; // StreamWriter _sWriter; // try // { // _tcpclient = new TcpClient(); // _tcpclient.ReceiveTimeout = 1000; // _tcpclient.Connect(host, port); // _sReader = new StreamReader(_tcpclient.GetStream(), Encoding.UTF8); // _sWriter = new StreamWriter(_tcpclient.GetStream(), Encoding.UTF8); // _sWriter.WriteLine(result.Request); // _sWriter.Flush(); // result.ErrorStr = ""; // try // { // result.Response = _sReader.ReadLine(); // result.TimeOutError = false; // } // catch (IOException ex) // { // result.TimeOutError = true; // result.ErrorStr = ex.Message; // } // //catch (OutOfMemoryException ex) // //{ // // result.ErrorStr = ex.Message; // //} // _sWriter.Close(); // _tcpclient.Close(); // } // catch (Exception ex) // { // result.ErrorStr = ex.Message; // } // return result; //} private void BtnEDMGet_Click(object sender, EventArgs e) { SetAllowUnsafeHeaderParsing20(); txtLog.Clear(); EDMRequest request = new EDMRequest(tbxEDMAddress.Text, (int)nudEDMPort.Value, @"{""id"":0,""jsonrpc"":""2.0"",""method"":""miner_getstat1""}") { IsResponse = true }; EDMResponse response = DoEDMCommand(request); //EDMResult edmr = GetEDMInfo2(tbxEDMAddress.Text, (int)nudEDMPort.Value); Wr(response.Response + "" + response.ErrorStr); if (response.Error == EDMError.None) { //string s = @"{ ""result"": [""9.3 - ETH"", ""21"", ""182724;51;0"", ""30502;30457;30297;30481;30479;30505"", ""0;0;0"", ""off;off;off;off;off;off"", ""53;71;57;67;61;72;55;70;59;71;61;70"", ""eth-eu1.nanopool.org:9999"", ""0;0;0;0""]}"; EDMResult edmResult = new EDMResult(response.Response); Wr(JsonConvert.SerializeObject(edmResult.Data)); Wr("Version: " + edmResult.Data.Version.ToString()); Wr("RunningTime: " + edmResult.Data.RunningTime.ToString()); } }