private bool TryConnectSocket() { try { socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var ipPoint = new IPEndPoint(IPAddress.Parse(_ip), _port); socket.Connect(ipPoint); //connected work byte[] buffer = new byte[128]; StringBuilder sb = new StringBuilder(); string str; str = SocketHelper.GetMessageFromServer(buffer, sb, socket); if (str == "GET_INFO") { var item = _trackerId; SocketHelper.SendItemToServer(item, socket); str = SocketHelper.GetMessageFromServer(buffer, sb, socket); if (str.Contains("trackerId=")) { Int32.TryParse(str.Replace("trackerId=", ""), out _trackerId); SaveInXmlTrackerId(); } } //end first connect return(true); } catch { return(false); } }
public bool SendTrackerEvents(Socket socket, ref bool isConnected) { List <TrackerEventInfo> teInfos; bool isNeedSendAgain = true; lock (objLock) { teInfos = TrackerEventInfo .Include(te => te.TrackerEvent) .Take(100) .ToList(); } if (teInfos == null || teInfos.Count == 0) { return(false); } if (teInfos.Count < 100) { isNeedSendAgain = false; } var listToDelete = new List <TrackerEventInfo>(); foreach (var teInfo in teInfos) { try { SocketHelper.SendItemToServer(teInfo.TrackerEvent, socket); if (!teInfo.IsContentInTrackerEvent) { SocketHelper.SendZipArchive(socket, teInfo.PathToContent); File.Delete(teInfo.PathToContent); } listToDelete.Add(teInfo); } catch { isConnected = false; isNeedSendAgain = true; break; } } RemoveList(listToDelete); return(isNeedSendAgain); }
public bool SendExceptions(Socket socket, ref bool isConnected) { List <ClientException> clientExceptionList; bool isNeedSendAgain = false; lock (objLock) { clientExceptionList = ClientExceptions .Take(100) .ToList(); } if (clientExceptionList == null || clientExceptionList.Count == 0) { return(false); } if (clientExceptionList.Count < 100) { isNeedSendAgain = false; } var listToDelete = new List <ClientException>(); foreach (var clientException in clientExceptionList) { try { SocketHelper.SendExaptionToServer(clientException.UserName, clientException.DateTime, clientException.ExceptionInner, socket); listToDelete.Add(clientException); } catch { isConnected = false; isNeedSendAgain = true; break; } } RemoveExceptionList(listToDelete); return(isNeedSendAgain); }