public SenderResponse Send(IEnumerable <ItemValue> values, int timeout = 500) { var req = new SenderRequest(); req.Request = "sender data"; req.Data = values.Cast <object>().ToArray(); var jsonReq = JsonConvert.SerializeObject(req); using (var tcpClient = new TcpClient(_zabbixServer, _port)) using (var networkStream = tcpClient.GetStream()) { var data = _encoding.GetBytes(jsonReq); networkStream.Write(data, 0, data.Length); networkStream.Flush(); var counter = 0; while (!networkStream.DataAvailable) { if (counter < timeout / 50) { counter++; Thread.Sleep(50); } else { throw new TimeoutException(); } } var resbytes = new Byte[1024]; networkStream.Read(resbytes, 0, resbytes.Length); var s = _encoding.GetString(resbytes); var jsonRes = s.Substring(s.IndexOf('{')); return(JsonConvert.DeserializeObject <SenderResponse>(jsonRes)); } }
public SenderResponse Send(IEnumerable<ItemValue> values, int timeout = 500) { var req = new SenderRequest(); req.Request = "sender data"; req.Data = values.Cast<object>().ToArray(); var jsonReq = JsonConvert.SerializeObject(req); using (var tcpClient = new TcpClient(_zabbixServer, _port)) using (var networkStream = tcpClient.GetStream()) { var data = _encoding.GetBytes(jsonReq); networkStream.Write(data, 0, data.Length); networkStream.Flush(); var counter = 0; while (!networkStream.DataAvailable) { if (counter < timeout / 50) { counter++; Thread.Sleep(50); } else { throw new TimeoutException(); } } var resbytes = new Byte[1024]; networkStream.Read(resbytes, 0, resbytes.Length); var s = _encoding.GetString(resbytes); var jsonRes = s.Substring(s.IndexOf('{')); return JsonConvert.DeserializeObject<SenderResponse>(jsonRes); } }