IPB

Witaj Gościu ( Zaloguj | Rejestruj )

> Uwaga!

Odsyłanie do wujka google.pl nie rozwiązuje problemu! Lepiej podaj od razu konkretnego linka do strony gdzie użytkownik znajdzie rozwiązanie problemu, bądź po prostu w ogóle się nie udzielaj.

 
Reply to this topicStart new topic
Networking podstawy, Jak przesłać jedną zmienną do klienta?
MetalowyNerd
post 7.04.2017 - 10:01
Post #1


Smart Newbie
*

Wiek: 24 lata
Grupa: Użytkownicy
Postów: 92
Dołączył: 10.01.2016
Skąd: Ziemia
Team: Pyrite Industries
Uploader
Ostrzeżenia:
(0%) -----


Witam. Bardzo interesuje mnie Networking w GM:Studio, ale za nic nie mogę tego zrozumieć. Chcę mieć dwa programy, Server i Client. W projekcie Server mam następujący kod:

Create:

GML
GMLglobal.metal = 500;
ini_open("metal.data");
ini_write_real("saved","metal",global.metal);
ini_close();


Networking:

GML
GMLnetwork_create_server(network_socket_tcp,6510,20);

buff = buffer_load("metal.data");
network_send_packet(sock, buff, buffer_get_size(buff));


Natomiast w projekcie Client mam:

Create:

GML
GMLglobal.metal = 0;


Networking:

GML
GMLclient = network_create_socket(network_socket_tcp);
network_connect(client,"192.134.0.1",6510);


I nie rozumiem jednej rzeczy, jak Client ma odebrać pakiet z wartością zmiennej global.metal z Server'a? Chcę, żeby Client mógł ją wyświetlić w swoim okienku.


--------------------
MOJE PROJEKTY

ANDROID ══════════════════════════════════════════════════
  1. ✔✔✔✔✔✔✔✔✔ Pixel Defender
  2. ✔✔✔✔✔✔✔✔✔✔ Wrecked On Kepler-452b
  3. ✔✔✔✔✔✔✔✔✔✔ Zombie Defence

WINDOWS
═════════════════════════════════════════════════
  1. ✔✔✔✔✔✔✔✔✔ Pixel Defender
  2. ✔✔✔✔✔✔✔✔✔ Zombie Defence

Go to the top of the page
 
+Quote Post
post 7.04.2017 - 10:01
Post #





Wiek:



Uploader


Pani kontekstowa pokazuje swe wdzięki tylko w Valhalli lub wszędzie jeżeli nie jesteś zalogowany(a)! :3
Go to the top of the page
 
Quote Post
Danielus
post 7.04.2017 - 10:32
Post #2


Forum Veteran
*****

Wiek: 24 lata
Grupa: Użytkownicy
Postów: 390
Dołączył: 1.07.2006
Skąd: Zakopane/Kraków
Uploader
Ostrzeżenia:
(0%) -----


Tu masz wszystko opisane:
https://help.yoyogames.com/hc/en-us/article...orking-Overview

ogólnie jak pakiet dojdzie to dane będą w specjalnej mapie z której możesz sobie je odebrać


--------------------
Warn nr 1(13.08.2009):
CYTAT

Za duża sygna. Warn.
Platyna

Etoro-Kopiuj najlepszych na rynku forex
skype: Arrekinpl
Go to the top of the page
 
+Quote Post
I am vader
post 7.04.2017 - 12:01
Post #3


Wiadro of Antytrollerstwo
Ikona grupy

Wiek: 22 lata
Grupa: Moderatorzy
Postów: 1,761
Dołączył: 24.07.2008
Skąd: Gdynia

SSPH


Nagrody:
Uzytkownik roku (CA 2015)

Uploader
Ostrzeżenia:
(0%) -----


W evencie networking nie zapisujesz tworzenia serwera/klienta tylko obslugujesz przychodzace pakiety.
Serwer i klienta musisz zrobic w jakims innym evencie, np. w create.

W evencie networking korzystasz ze stałej async_load aby skorzystać z ds_mapy w której masz przychodzące dane, zapisane w async_load[? "buffer"] bądź ds_map_find_value(async_load,"buffer"); w zaleznosci od tego czy uzywasz accessorow czy nie.


--------------------

5678(ale ten czas leci!) lat później nadal go kaleczę.
GM GMS GML GMC Game Maker Studio Language Community Polska
Unity Tutoriale Poradniki Silniki Gotowce Dyskusje Pomoc Pytania Początkujący Zaawansowany Forum
Mój nick jest głupi. Ranga też. Ale to kawał forumowej histori więc zostanie tak na zawsze.
Chcesz natychmiastowej pomocy z GM'em? Dodaj mnie na steam, tam odpowiadam w ciągu 5 minut! LINK
Go to the top of the page
 
+Quote Post
MetalowyNerd
post 9.04.2017 - 18:56
Post #4


Smart Newbie
*

Wiek: 24 lata
Grupa: Użytkownicy
Postów: 92
Dołączył: 10.01.2016
Skąd: Ziemia
Team: Pyrite Industries
Uploader
Ostrzeżenia:
(0%) -----


Hmm. No to teraz to wszystko wygląda tak i nadal nie działa, a dodatkowo Client wyrzuca błąd i wyłącza Server.

SERVER:
Create:
GML
ini_open("data.sav");
ini_write_real("saved","metal",500);
ini_close();
network_create_server(network_socket_tcp,6510,20);


Networking:
GML
buff = buffer_load("data.sav");
network_send_packet(sock, buff, buffer_get_size(buff));


CLIENT:
Create:
GML
global.metal = 0;
client = network_create_socket(network_socket_tcp);
network_connect(client,"127.0.0.1",6510);


Networking:
GML
if (ds_map_find_value(async_load, metal) == true)//chciałem przy okazji zrobić, żeby ustawiało wartość -666, kiedy nie odbiera pakietu ze zmienną "metal"
global.metal = ds_map_find_value(async_load, metal);
else
global.metal = -666;


Draw:
GML
draw_text(10,10,fps);
draw_text(300,300,global.metal);//Żeby było widać, kiedy przychodzą pakiety z Server'a</span>


Wiem. Ostro kaleczę, ale zawsze miałem problem z programowaniem czegoś, co działa przez neta. Chodzi mi tylko i wyłącznie o to, żebym wiedział, jak przesłać zmienną z serwera na oddzielny program klienta.


--------------------
MOJE PROJEKTY

ANDROID ══════════════════════════════════════════════════
  1. ✔✔✔✔✔✔✔✔✔ Pixel Defender
  2. ✔✔✔✔✔✔✔✔✔✔ Wrecked On Kepler-452b
  3. ✔✔✔✔✔✔✔✔✔✔ Zombie Defence

WINDOWS
═════════════════════════════════════════════════
  1. ✔✔✔✔✔✔✔✔✔ Pixel Defender
  2. ✔✔✔✔✔✔✔✔✔ Zombie Defence

Go to the top of the page
 
+Quote Post
I am vader
post 9.04.2017 - 19:58
Post #5


Wiadro of Antytrollerstwo
Ikona grupy

Wiek: 22 lata
Grupa: Moderatorzy
Postów: 1,761
Dołączył: 24.07.2008
Skąd: Gdynia

SSPH


Nagrody:
Uzytkownik roku (CA 2015)

Uploader
Ostrzeżenia:
(0%) -----


W async_load nie ma klucza o nazwie "metal".
Dane przekazuje sie tak:

1. Wyczyść bufor za pomocą buffer_seek
2. Dodaj dane do bufora za pomocą buffer_write
3. Wyślij bufor za pomocą network_send_packet
4. Odbierz bufor za pomocą async_load[? "buffer"] lub ds_map_find_value(async_load, "buffer")
5. Wczytaj dane z bufora w tej samej kolejnosci i uzywajac tego samego typu danych co zapisujac dane w kroku 2.


Kroki 4 i 5 są w evencie networking


--------------------

5678(ale ten czas leci!) lat później nadal go kaleczę.
GM GMS GML GMC Game Maker Studio Language Community Polska
Unity Tutoriale Poradniki Silniki Gotowce Dyskusje Pomoc Pytania Początkujący Zaawansowany Forum
Mój nick jest głupi. Ranga też. Ale to kawał forumowej histori więc zostanie tak na zawsze.
Chcesz natychmiastowej pomocy z GM'em? Dodaj mnie na steam, tam odpowiadam w ciągu 5 minut! LINK
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 użytkownik(ów) przegląda ten temat (1 gości i 0 anonimowych użytkowników)
0 Użytkownicy:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2017 - 13:39