Mam serwer i klienta, napisane zgodnie z biblią, koranem i tutorialami tutaj + oficjalną stroną wiki. I problem jest taki - serwer reaguje na połączenie klienta tylko po "odświeżeniu" klienta w trybie debugowania, do tego nie bardzo daje radę z odczytywaniem zmieniającej się pozycji obiektu (w step). why? doklejam mój kod.
Wersja GM - 8.0, windows 7 ultimate. Testuję obie aplikacje na localhoście.
W create serwera:
GML
dllinit(0, true, false);
status = 0;
listen = tcplisten(14804, 50, 1);
if(listen <= 0) //jeśli nie udaje się połączyć
{
show_message("Failed to listen on port 14804");
game_end(); //zakończ grę
}
w step serwera
GML
client = tcpaccept(listen, 1);
if(client <= 0) exit;
global.otherplayer = client;
var size;
while(true)
{
size = receivemessage(global.otherplayer);
if(size < 0) break;
if(size == 0)
{
show_message("The other player left the game");
game_end();
}
messageid = readbyte();
switch(messageid)
{
case 0:
x = readshort();
y = readshort();
status = readshort();
break;
}
}
mam na serwerze jeszcze jeden obiekt którym odczytuje sobie wartości zmiennych i wyświetlam jako tekst, ale to nie ma znaczenia, na mur beton działa.
teraz klient:
w create
GML
dllinit(0, true, false);
status = 1;
server = tcpconnect("127.0.0.1", 14804, 2);
if(server <= 0)
{
show_message( "Unable to connect to server" )
game_end();
}
global.otherplayer = server;
step:
GML
if(keyboard_check(vk_left))
{
x = x + 4;
}
if(keyboard_check(vk_right))
{
x = x - 4;
}
clearbuffer();
writebyte(0);
writeshort(x);
writeshort(y);
writeshort(status);
sendmessage(global.otherplayer);
Dlaczego cała sytuacja jest dziwna? Klikam sobie refresh czy też restart w debug mode (klient), a w oknie serwera zapala się zielona lampka (zmienna status została przesłana z powodzeniem). Help me pl0x!
Radzę lepiej zapoznać się z regulaminem.. Nazwa tematu powinna nawiązywać do treści opisywanego problemu, "zakaz nazywania tematów zbyt ogólnikowo (np. "pomoc", "poszukuję", "mam problem", "komputer" itd.),". Z powodu, że jesteś jeszcze młody na forum potraktuje Cię ulgowy - warna nie będzie :P
Pamiętaj o tym!
Marek.S