Downloader

Przykład asynchronicznego pobierania plików z internetu, które nie blokuje GMa. W przykładzie zaprezentowano ściąganie 3 plików jednocześnie (aby rozpocząć pobieranie plików trzeba wcisnąć klawisze: 1, 2 lub 3, a najlepiej wszystkie jednocześnie :P).

Można pobierać pliki zarówno streamowane o nieznanej wielkości (włącznie z treścią HTML) tak jak i pliki o znanej wielkości, dzięki czemu można wyświetlić pasek postępu. Zaimplementowano podstawową obsługę protokołu HTTP 1.1 (chunked files itp.).

Paczuszka zawiera wersje zarówno pod GM 7 (z załączonym rozszerzeniem GEX) jak i GM 6 (plik 39dll.dll także znajduje się w archiwum).

Autor: Ranmus https://gmclan.org

Rozmiar
93 KB
Autor
Ocena
8/10
51 głosów
Komentarze
Komentarze (łącznie 26, wyświetlam 1 - 15):
S
Snake (Sob., 22 Mar. 08, 22:48)
#1

Przykładzik zaisty :P

Ranmus (Sob., 22 Mar. 08, 23:57)
#2

Tylko strasznie dużo kłopotów miałem z wysyłaniem nagłówka, aż w końcu sprawdziłem w oficjalnym przykładzie jak to autor zrobił te ściąganie. No nigdy bym nie wpadł na to, że jakieś setformaty i konkretne chry trzeba naustawiać na końcach linijek, ponieważ w RM_HTTP działało mi to normalnie bez szmerów bajerów. Czyżby wysłużony GM SOCK był po prostu lepszy w operacjach na ciągach tekstowych?

gnysek (Nie., 23 Mar. 08, 00:02)
#3

Wiesz, 39dll został napisany pod gry online głównie więc reszta kuleje :P Ja też miałem problem z wysyłaniem danych na www w 39dll jak robiłem dla Borka ten przykład ze statusem Almory, ale dało radę w końcu :P A to było tylko wysyłanie :P

Ranmus (Nie., 23 Mar. 08, 00:19)
#4

Ale ja tu nie widzę jakichś problemów i dziwi mnie to po co w ogóle jest jakiś setformat. Zresztą to wszystko wina braku natywnych socketów w gm i większej palety typów danych. Ja w C# nie mam takich kłopotów. Biorę klasę do natywnej obsługi socketa, otwieram i gotowe. Wysyłanie i odbiór danych idzie w tablicy bajtów i niczym innym, a do rzutowania tekst -> tablica bajtów i na odwrót mam specjalne funkcje. W sumie to nawet nie muszę rzutowania robić.

Borek (Nie., 23 Mar. 08, 00:27)
#5

Boskie! Ranma jak coś wrzuci, to jest porządne... To mi się właśnie podoba!

gnysek (Nie., 23 Mar. 08, 10:44)
#6

Borek, a wyobraź sobie, że w nowej wersji GM7 jednak zrobią zapisywanie zasobów w osobnych plikach niż exe, żeby unikać dekompilacji i wtedy update almory sam się ściąga :P

Ranmus (Nie., 23 Mar. 08, 22:41)
#7

Usunąłem komentarze dotyczące braku pobierania HTML z tej racji, że zlikwidowałem tą niedogodność. :)

gnysek (Nie., 23 Mar. 08, 22:59)
#8

Weź się człowieku lecz :P Taka wiedza a dopiero teraz się dzielisz ? :P

Ranmus (Nie., 23 Mar. 08, 23:05)
#9

Tak, jasne. Przed zrobieniem tego przykładu po prostu wziąłem opis protokołu http i poczytałem na temat tych jego części, które będą mi potrzebne. Czy to takie trudne przeczytać, zrozumieć i stworzyć? :P

koko123 (Pon., 24 Mar. 08, 01:01)
#10

Bardzo porządny przykład B)
10

Dawidds (Pon., 24 Mar. 08, 08:30)
#11

No teraz masz 5 bez żadnych "wontów" :P

Zaraz spróbuje se zrobić aktualizaje automatyczną gry - dla jaj :P

Solmis (Pon., 24 Mar. 08, 09:35)
#12

Super! ^^

gnysek (Pon., 24 Mar. 08, 11:06)
#13

Dawidds, ale tu jest skala x/10 :P

Ranmus (Pon., 24 Mar. 08, 12:22)
#14

No właśnie. Zresztą powinienem wtedy dodatkowo zresetować ocenę, bo nie mam pełnej dziesiątki. :P

K
Kofel (Sob., 29 Mar. 08, 14:09)
#15

Ranmus, obsługuje to coś parametry GET i POST? :D

Najnowsze wersje GameMakera:

Stabilna
2023.8.1.102 • 2023.8.1.148
wydana 14 dni temu
LTS
2022.0.1.31 • 2022.0.1.30
wydana 169 dni temu
Beta
2023.800.0.406 • 2023.800.0.429
wydana 30 dni temu
= IDE, = Runtime
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
Shoutbox
gnysek (14:59, 28.09.23)
Poszedł dziś update strony :)
Adriann (21:06, 14.08.23)
Jest..hoho:D
Adriann (21:04, 14.08.23)
Nie znam tego, poszukam. Nie mówisz mam nadzieję o tej podmiance wewnątrz skryptu?
gnysek (10:38, 14.08.23)
Przecież jest: Search & Replace. Do tego nazwy skryptów i zasobów akurat Feather podmienia praktycznie bez problemów.
Adriann (14:39, 12.08.23)
Przydałaby się opcja do globalnej zmiany nazwy zmiennejobiektu we wszystkich skryptach i obiektach :D Tak to jest dość ciężko zabrać się za sprzątanie
SimianVirus7 (10:39, 12.08.23)
To nie burdel, to nieład artystyczny
exp (00:35, 12.08.23)
Feather nie zrozumiał, że burdel jest elementarną częścią mojego projektu
exp (00:34, 12.08.23)
Miałem to samo, nie tyle otworzyłem stary projekt, co w końcu ściągnąłem aktualizację (bo olewałem ten komunikat od chyba półtora roku)
gnysek (23:48, 10.08.23)
Kolizje tilesetowe rządzą!
gnysek (20:01, 26.07.23)
zobaczycie nowy edytor kodu, powinen wskoczyć do bety w sierpniu...
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Kiedy wyjdzie GameMaker (Studio) 3.0?