Nowe posty

Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Filys

Strony: [1] 2
1
C/C++ / Odp: Błędy zależności przy instalacji g++-2.95
« dnia: 2017-06-04, 12:43:59 »
Poprawienie paru pierdół i skompliowanie na nowej wersji powinno być proste.

Dziwi, że Kolega jednak wybrał katowanie się z wirtualną maszyną.

2
Ale jazda lol, Admnini nie bijcie odpowiedziałem w poprzednim temacie a nie widziałem co tu się dzieje.

Pozdrawiam.

3
Możesz użyć do tego np. biblioteki SDL2

Pzdr.

4
Mother of Lord...

* Po coś są funkcje sendfile/copy_file_range/splice.
* Po coś jest zrobiony podsystem mmap.
* Po coś są zaprojektowane mechanizmy ECN/autocorking/sack.
* Po coś powstały biblioteki typu libev/libevent.
* Po co open_readerr_passed() jak jest strerror(3)?
* Po co discsize_left_in_path() sprawdza roota, jak pierwszą rzeczą, którą robi main() jest wywalenie się przy roocie?
* Jak robisz TCP_NODELAY, to powinno być writev() (a nie pierdyliard write() po kilka bajtów) ALBO używać TCP_CORK.
* Jest straszna redundancja kodu - jest wiele funkcji mających praktycznie te same, duże fragmenty.

Strasznie duża napinka, żeby uzyskać odpowiednik tar | nc .... nc | tar, scp, rsync albo któregoś z tysiąca innych gotowych programów do transferu. Innowacją by było np. użycie UDP z FEC, drzewa Merklego do wykrycia już przesłanych kawałków, szyfrowanie i/lub konpresja ruchu albo coś w ten deseń...

Dodatkowo, dużo providerów sieci daje 8-10Mb/s uploadu niezależnie od downloadu, co może dać zaobserwowany 1MB/s.

"Po coś są funkcje sendfile/copy_file_range/splice."
Nie znałem tych funkcji,  Nauczka na przyszłość.

"* Po coś jest zrobiony podsystem mmap."
No to prawda mogłem tego użyć, nawet o tym myślałem ale stwierdziłem, że aaa dobra. Mmap nie jest takie przyjemne do stosowania tbh.

"* Po coś są zaprojektowane mechanizmy ECN/autocorking/sack."
To musiałem doczytać.
Sack pewnie by dał radę. Ale idea była taka, że jak check suma się nie zgadza za którymś razem (wiem nie zrobiłem tego). To zepsuty kawałek by był retransmitowany.
Poza tym w internecie pisało, że sack nie nadaje się do dużych plików. Wreszcie nie przypominam sobie any sack dało się ustawić w opcjach socketów.

TCP_Autocorking to jakaś nowość chyba bo tego nie kojarzę.  (skąpe opisy w necie).

O ECN też pierwsze słyszę. Wygląda że dość stare ale nie kojarze jak to włączyć.

Na oko ECN i SACK można przez info zakomunikować ale czy to się wiąze z włączeniem to nie wiem.

"* Po coś powstały biblioteki typu libev/libevent."
Chciałem napisać sam. Generalnie ideałem byłoby trzymac się samego POSIXA ale cóż ;-)

"* Po co open_readerr_passed() jak jest strerror(3)?"
Kulawa funkcja aby uniknąć wywalenia całego programu a tylko zawiadomienai, że pliku nie można otworzyć z jakiegoś powodu.

"* Po co discsize_left_in_path() sprawdza roota, jak pierwszą rzeczą, którą robi main() jest wywalenie się przy roocie?"
Funkcja przeniesiona z mojej mini biblioteki. Jak i Wiele innych funkcji. nie ma linkowania bo nieskończona bib.

* Jak robisz TCP_NODELAY, to powinno być writev() (a nie pierdyliard write() po kilka bajtów) ALBO używać TCP_CORK.
A wysłanie z TCP_CORK wszystkiego naraz co mi daje?
Z writev to pewnie bym musiał mieć wiele buforów. Ale faktycznie pomysł dobry.

"* Jest straszna redundancja kodu - jest wiele funkcji mających praktycznie te same, duże fragmenty."
Część rzeczy była kopiowana z innego kodu jak wspomniałem I jest uzasadnione aby nie mnożyć functioncall ;-).

"
Strasznie duża napinka, żeby uzyskać odpowiednik tar | nc .... nc | tar, scp, rsync albo któregoś z tysiąca innych gotowych programów do transferu. Innowacją by było np. użycie UDP z FEC, drzewa Merklego do wykrycia już przesłanych kawałków, szyfrowanie i/lub konpresja ruchu albo coś w ten deseń... "

No ale jak samemu się nie zrobi to pewnych rzecyz się nie nauczy wg mnie / nie sprawdzi.
Rsync używa UDP o ile kojarze ale tam po prostu jest checksuma co 1kB.

"Dodatkowo, dużo providerów sieci daje 8-10Mb/s uploadu niezależnie od downloadu, co może dać zaobserwowany 1MB/s."
Wydawąło mi się zawsze że Ktorrent przesyła jeszcze szybciej jakimś cudem.
Ja wyciągnąłem te 6,5 giga w 45 min więc jeszcze mnie to zadowoliło. Ale liczyłem na szybciej. W sieci lokalnej śmigało ekstra;-)

Dziękuję za odpowiedź. Zainteresuję się tym czego nie wiedziałem.

5
Programu nie skończyłem bo jak już mi zadziałał to potem były pomysły na inne rzeczy i lenistwo zwyciężyło. (brak możliwości wznowienia wysyłąnego pliku brak checksumy, brak  pewnych pierdol ).

Nie zmienia to faktu, że wysłałem tym 6gigowy plik od mojego kolegi i wszystko zadziałało.
(sprawdziłem checksume).

Moja obserwacja.
Można spokojnie używać do tego TCP. Nie sądzę aby udp cokolwiek tu przyspieszyło.
Mając tylko jedno IP. Nie byłem w stanie wyciągnąć więcej niż 1 MB/s. Normalnie wiem że moje absolutne max waha się coś koło 8-9. Wniosek: Aby wyciągnac max trzeba by wysyłać albo przez bramki proxy albo któraś ze stron musi dysponować większą liczbą IP.

Program prawdopodobnie wymaga flagi -std=c11., do skompilowania.
Napisałem tylko po ipV4 i tylko pod linuxa. Ze względu na użucie pewnych rzeczy z glibc nie zadziała to na bsd/solaris.

kod: https://paste.fedoraproject.org/537409/

Pozdrawiam.

EDIT:  fedora widze usuwa no to wklejka będzie wisiała na ubuntu https://paste.ubuntu.com/24101881/

6
C/C++ / Odp: Przekazywanie zmiennej pomiędzy klasami
« dnia: 2016-12-05, 17:25:40 »
Zapisujesz zmienną w kasie. Zmienna jest publiczna. potem kopiujesz ją do drugiej zmiennej w klasie. i tyle.

7
C/C++ / Odp: Odczyt z pliku i synchronizcja
« dnia: 2016-12-05, 17:22:47 »
Joł chcesz pomocy z wytłumaczeniem czemu to idź na IRC freenode ##zandronum. I zagadnij mnie tam jak się pojawię na kanale (przeważnie jestem).

Generalnie na szybko, nigdy nie uzywaj kill i signal tylko sigaction i sigqueue. Nie możesz file używać jako fd bo to są dwa różne typy używa się fileno do przetworzenia file na fd.
Jak otworzysz zwyczajnie plik do zapisu tkz stworzysz przez funkcje open  i nie ustawisz permissions to nie masz żadnych praw w nim jako uzytkownik. Nitk nie ma.

kompiluj z flagami warnów + z valgrindem to Ci zapewnia przeważnie po pozbyciu się błędów działający kod.

Pozdro.

8
C/C++ / Odp: sprawdzanie całego plik w poszukiwaniu danych
« dnia: 2016-08-23, 13:46:35 »
W C++ lepiej sprawdzian eof se darować bo się źle kończy (poszukać innej metody na koniec pliku, możliwe że umieszczenie getline w while da rade). Jak to zrobić w C?

// radośnie założę, że 300 bajtów wystarczy.
const size_t buff_siz = 300;
char buff[buff_siz];
for(;fgets( buff, buff_size, file )!=NULL;) {
 
  //tu coś rób z danymi.
 
}

//wszelkie błędy jak sprawdzać przeczytasz w man funkcja.

9
C/C++ / Odp: Jak książka na początek
« dnia: 2016-06-22, 15:13:35 »
Generalnie książki do c++ to crap nie z tej ziemi a sam język jest po prostu stratą czasu ale co kto lubi. Moja opinia, jak Tobie pasuje ucz się tego.

Może być to dobre.

http://www.learncpp.com/

Symfonia C++ to super crap, unikać.

Jak zależy na języku w którym jets praca to polecam C#, python, JS, Java. Tak mnie ktoś pedział. Ja np. nie jestem programista z wykształcenia więc kodzę w czym chcę.

TYLKO C!!!!! :)

10
C/C++ / Odp: problem z std::bad_alloc
« dnia: 2016-05-23, 14:11:44 »
Wpisz w bajtach ile masz ramu i powinno paść albo w pętli nieskończonej alokuj póki nie fail. Przy czym nie wiem czy OM kiler czy jak to się tam zwie nie sprzatnie programu zanim zdąży wyskoczyć błąd.

Pozdro!

11
Dawno tu nic nie wrzucałem to niech będzie funkcja którą sobie ostatnio napisałem i sporo z niej korzystam.
Jej wada to to że nie jest to pewnie zbyt szybkie ale to komunikacja jest najwolniejsza więc mozna przymknąć oko. Poważniejsza wada to to, że przyjmuje, że header mieści się w 8k znaków ale co tam ;) Sprawna ręka sobie poradzi i zwiększy jak coś.

(w wersji był pewien bład który na szybko naprawiłem stad troche głupkowaty poczatek i wymaga pełnego URL http://).

Wrzuciłem też wersje która robi request przez proxy (trzeba ofc podac adres proxy). Wersja ma pewne restrykcje i wplecione select bo nawet dobre proxy czasem się zmuli i lepiej ponowić zapytanie. A słabe odrzucić ju na początku (trzeba by jednak zmienić zwracany błąd bo u mnie wszystko wywala -1 ;> No. Nie jest to najlepsza funkcja ale też fajniusia. Obie wrzucam tu. Czy proxy udaje lynxa to już wie proxy.

EDYCJA!!!!
Poprawiłem bardzo ważny błąd, po shutdown zapomniałem close:)


Normalna:
http://paste.ubuntu.com/16316079/

Przez Proxy:
http://paste.ubuntu.com/16316082/

nagłówek dotyczy większej grupy funkcji więc nie będe wydzielał i wklejam co mam;p
http://paste.ubuntu.com/15956540/

Pozdro! Tylko Debian i tylko C!

12
C/C++ / Odp: Segmentation fault (core dumped)
« dnia: 2016-04-20, 23:02:27 »
Jak działasz na windzie to sypie Ci się stack bo masz powyżej 1 mb.

Takie duże tablice się alokuje. Pozdrawiam.

PS: int main( void )   <-- zgodnie z standartem C.   int main ()  tak wolno tylko w C++.

PS2: Lepiej załóż sobie irca i poszukaj kanału C i tam pytaj. Przeważnie szybka odpowiedź.
Polecam Ircnet, a tak serio to każda sieć z kanałem C poza ##C na freenode (absolutnie chory kanał szkoda się rozpisywać).

13
C/C++ / Odp: Potrzebna pomoc do weryfikacji kodu
« dnia: 2016-01-27, 10:47:28 »
1) sprintf (bufor, "GET% s HTTP / 1.0 \ r \ nTyp-Agent: open2300 / 1.10-2 \ r \ nAccept: * / * \ r \ nHost: weatherstation.wunderground.com \ r \ nConnection: Keep-Alive \ r \ n \ r \ n "urlline);

2)  sprintf(buffer, « GET %s HTTP/1.0\r\nUser-Agent: open2300/1.10-2\r\nAccept: */*\r\nHost: weatherstation.wunderground.com\r\nConnection: Keep-Alive\r\n\r\n », urlline);

Dzień dobry  Jedynka jest zdecydowanie błędna.  ze względu na
GET% s  -złe 
GET %s  -poprawne

Jeżeli jakimś cudem nawet by zadziałała to dosatniemy GETwww.xxx.pl/bla   wątpie aby serwer http był zadowolony jak mu się takiego crapa podstawi.

RFC o ile pamiętam nie zaleca keep-alive dla http1.0, ale co zrobić;p
User-Agent wygląda od czapy (ja bym podszył się pod wincrapa :)
Ja bym dodał jeszcze do headera Accept-Language.

Jednak generalnie to:

2) <---  wygląda poprawnie.

Pozdrawiam.

14
C/C++ / Odp: Huffman! Dywagacje o kompresji w sieci...
« dnia: 2015-12-13, 21:24:39 »
Dziękuję za odpowiedź. Już sobie znalazłem odpowiednie książki zgodnie z poleconymi na bt-digg.

Pozdrawiam!

15
C/C++ / Odp: Huffman! Dywagacje o kompresji w sieci...
« dnia: 2015-12-13, 15:55:26 »
" Osobnik zbanowany chyba na wszystkich możliwych forach..."

O.o

Może jakiś przykład? O jakie fora niby chodzi?

Co do reszty ok. Dam sobie radę. Pytanie było po to aby uzyskać jakieś dobre źródło. Zakładam zatem, że Kolega chciał powiedzieć, że czego bym sobie nie znalazł to będzie dobre.

Strony: [1] 2