Пример #1
0
 /// <summary>
 /// Usuwa pliki z serwer
 /// </summary>
 /// <param name="plikiDoUsuniecia">Lista plików do usunięcia</param>
 /// <returns>Odpowiedź od serwera</returns>
 public int usunPliki(List<pojedynczyPlik> plikiDoUsuniecia)
 {
     List<plikInfo> plikiDoUs = new List<plikInfo>();
     foreach (pojedynczyPlik p in plikiDoUsuniecia)
         plikiDoUs.Add(new plikInfo(p.nazwa, -1, -1, -1, p.hash));
     try
     {
         klientUsun usun = new klientUsun(sessionID, (int)operacje.usuwanie, plikiDoUs);
         XmlSerializer xml = new XmlSerializer(typeof(klientUsun));
         StringWriter stringWriter = new StringWriter();
         xml.Serialize(stringWriter, usun, names);
         string strToWrite = stringWriter.ToString() + endl;
         wyslij(ASCIIEncoding.ASCII.GetBytes(strToWrite), strToWrite.Length);
     }
     catch (Exception ex)
     {
         throw new Wyjatki.BladWysylania("Blad podczas usuwania plików z serwera -- usuwanie zapytanie");
     }
     for (int j = 0; j < plikiDoUsuniecia.Count; j++)
     {
         serwerBase odpSerw = new serwerBase();
         try
         {
             XmlSerializer xml = new XmlSerializer(typeof(serwerBase));
             string str = pobierz();
             odpSerw = (serwerBase)xml.Deserialize(new StringReader(str));
         }
         catch (Wyjatki.BladOdbierania bo)
         {
             bo.add("-- usuwanie odpowiedz");
             throw bo;
         }
         catch (Exception)
         {
             throw new Wyjatki.BladParsowania("Dostano bledne dane od serwera lub nastapil blad programu -- usuwanie odpowiedz");
         }
         if (odpSerw.odp == (int)odpowiedzi.blad_serwera || odpSerw.odp == (int)odpowiedzi.bledny_numer_sesji) return odpSerw.odp;
     }
     return 1;
 }
Пример #2
0
 /// <summary>
 /// Wysyła plik na serwer
 /// </summary>
 /// <param name="nazwa">Nazwa pliku</param>
 /// <param name="data">Data pliku</param>
 /// <param name="rozmiar">Rozmiar pliku</param>
 /// <returns>Odpowiedź od serwera</returns>
 public int uploadFile(string nazwa, DateTime data, int rozmiar)
 {
     string katalog = ((folder[folder.Length - 1] == '/') ? folder : folder + "/");
     if (!File.Exists(katalog + nazwa)) return -4;
     try
     {
         StringWriter stringWriter = new StringWriter();
         XmlSerializer xml = new XmlSerializer(typeof(klientUpload));
         klientUpload upload = new klientUpload(sessionID, (int)operacje.wysylanie, nazwa, (long)(data - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds, rozmiar, 0, hashPliku(katalog + nazwa));
         xml.Serialize(stringWriter, upload, names);
         string str = stringWriter.ToString() + endl;
         wyslij(ASCIIEncoding.ASCII.GetBytes(str), str.Length);
     }
     catch (Exception)
     {
         throw new Wyjatki.BladWysylania("Blad podczas wysylania danych na serwer. Sprawdz polaczenie z internetem, oraz ewentualnie ustaw proxy -- wysylanie zapytanie");
     }
     serwerBase odpSerwera = new serwerBase();
     try
     {
         StringReader stringReader = new StringReader("");
         string str = pobierz();
         XmlSerializer xml = new XmlSerializer(typeof(serwerBase));
         odpSerwera = (serwerBase)xml.Deserialize(new StringReader(str));
     }
     catch (Wyjatki.BladOdbierania bo)
     {
         bo.add("-- odpowiedz wgrywanie plikow");
         throw bo;
     }
     catch (Exception)
     {
         throw new Wyjatki.BladParsowania("Dostano bledne dane od serwera lub nastapil blad programu -- odpowiedz wgrywanie plikow");
     }
     if (odpSerwera.operacja != (int)operacje.wysylanie) return -3;
     if (odpSerwera.odp == (int)odpowiedzi.plik_istnieje)
     {
         string odp;
         if (MessageBox.Show("Plik " + nazwa + " istnieje na serwerze, czy zastapic go?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
         {
             odp = "ok";
         }
         else
         {
             odp = "abort";
         }
         try
         {
             StringWriter stringWriter = new StringWriter();
             XmlSerializer xml = new XmlSerializer(typeof(klientOdpDownload));
             klientOdpDownload kod = new klientOdpDownload(sessionID, (int)operacje.wysylanie, odp);
             xml.Serialize(stringWriter, kod, names);
             string str = stringWriter.ToString() + endl;
             wyslij(ASCIIEncoding.ASCII.GetBytes(str), str.Length);
         }
         catch (Exception)
         {
             throw new Wyjatki.BladWysylania("Blad podczas wysylania danych na serwer. Sprawdz polaczenie z internetem, oraz ewentualnie ustaw proxy -- odpowiedz czy plik zastapic");
         }
         try
         {
             StringReader stringReader = new StringReader("");
             string str2 = pobierz();
             XmlSerializer x = new XmlSerializer(typeof(serwerBase));
             odpSerwera = (serwerBase)x.Deserialize(new StringReader(str2));
         }
         catch (Wyjatki.BladOdbierania bo)
         {
             bo.add("-- odpowiedz na zapytanie czy zastapic");
             throw bo;
         }
         catch (Exception ex)
         {
             throw new Wyjatki.BladParsowania("Dostano bledne dane od serwera lub nastapil blad programu -- odpowiedz na zapytanie czy zastapic" + ex.ToString());
         }
     }
     if (odpSerwera.operacja != (int)operacje.wysylanie) return -3;
     if (odpSerwera.odp == (int)odpowiedzi.wszystko_ok || odpSerwera.odp == (int)odpowiedzi.plik_nie_istnieje)
     {
         int rozmiarUp = 102400;
         int rozmiarTmp = rozmiar;
         FileStream fileStream = new FileStream(katalog + nazwa, FileMode.Open, FileAccess.Read);
         BinaryReader br = new BinaryReader(fileStream);
         int c = 0;
         try
         {
             while (rozmiarTmp != 0)
             {
                 c++;
                 if (rozmiarTmp < rozmiarUp)
                     rozmiarUp = rozmiarTmp;
                 byte[] bytes = br.ReadBytes(rozmiarUp);
                 wyslij(bytes, rozmiarUp);
                 rozmiarTmp -= rozmiarUp;
                 System.Threading.Thread.Sleep(100);
             }
         }
         catch (Exception)
         {
             throw new Wyjatki.BladWysylania("Blad podczas wysylania pliku na serwer -- wysylanie pliku");
         }
         finally
         {
             fileStream.Close();
         }
         fileStream.Close();
         try
         {
             XmlSerializer xml = new XmlSerializer(typeof(klientHash));
             klientHash khash = new klientHash(sessionID, (int)operacje.wysylanie, hashPliku(katalog + nazwa));
             StringWriter sw = new StringWriter();
             xml.Serialize(sw, khash, names);
             string str = sw.ToString() + endl;
             wyslij(ASCIIEncoding.ASCII.GetBytes(str), str.Length);
         }
         catch (Exception)
         {
             throw new Wyjatki.BladWysylania("Blad podczas wysylania pliku na serwer -- wysylanie hasha");
         }
     }
     return odpSerwera.odp;
 }