Example #1
0
        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);
            }
        }
Example #2
0
        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);
        }