si la IP del servidor DosBox siempre es la misma, 127.0.0.1
y la del cliente es la real IP 192.169.1.X
si el rango de ips es diferente no se veran, o no podran entrar en la partida.
la culpa la tiene DosBox.
Por que yo lo e probado con 3 motodos diferentes: RED LAN Wifi, LAN por cable cruzado, y hamachi.
pero Dosbox siempre me da al Servidor esa IP fija.
El cliente puede conectarse con el servidor usando la IP del ordenador normal, no la IP nula.
Lo que si, el config de DosBox. le tengo puesto que el servidor este comando:
ipxnet startserver
Y el liente
ipxnet connect 192.168.1.x (IP del Servidor, pero la IP REAL)
Si usando la IP REAL LAND del servidor si que me deja conectarse, no hay que usar la 127.0.0.1
deberia probarlo con un viejo juego multijugador como DOOM 2 para comprobar si se ven.
si se ven, es que es asi de raro dosbox, que aun que de esa IP seria lo normal....
:/
Yo e programado el PRG para los 2.
no se, crei por un momento que el PRG deberia ser identicos los 2. tanto el cliente como el servidor.
de todas formas probare tu orden de PRG, hare 2 PRG.
Lo se, que no se debe meter un NET_x dentro de un bluque, me di cuenta, la actividad de la red se pone a 100 XDDD
lo tengo puesto con un IF(KEY(_Enter)) asi no abusa del comando.
e probado usando maquinas virtuales con Win98se, con conexion LAN y internet.
se ven entre ellos, en grupo de trabajo y tal.
pero en Div2, me da error -2 y no puede crear la partida.
pero es fallido U_U
No tengo idea de que BUG pueda tener Div2 con las funciones online....
pero almenos quiero intentarlo por mero ilusion

---------------------------------------------
mira e cambiado los PRG
espero que te guste mas:
es algo sencillote, pero me gustaria que tu lo modificaras mejor..
Este es el Server(el quien crea la partida)
PROGRAM ejemplo_net_join_game;
///server!!!
GLOBAL
STRUCT jugador[1]; // 8 jugadores como máximo (de 0 a 7).
x,y;
END
id_red;
get_net;
string t;
BEGIN
net.device=1;
net.max_players=2; // Se indica aquí el número de registros.
t="Crear Parida? Enter SI";
write(0,0,0,0,t);
repeat
frame;
until(key(_enter));
id_red=net_join_game("xxx",OFFSET jugador, sizeof(jugador));
// El registro de este jugador es "jugador[id_red]"
loop
if(id_red=>0);
jugador[id_red].x=x; // Defino mis campos
jugador[id_red].y=y;
end
if(key(_enter));get_net=net_get_games();end
t="id_red="+itoa(id_red)+" x:"+itoa(x)+","+itoa(y)+" num_ply="+itoa(net.num_players)+" server="+itoa(net.server)+" get_g:"+itoa(get_net);
FRAME; // Envio / Recepción de datos
// Ahora hay conectados "net.num_players", y sus datos están en
// los demás registros de la estructura jugador[].
// ...
end
END
Y este es el Cliente (Quien busca la partida y se une...)
PROGRAM ejemplo_net_join_game;
///Client!!!
GLOBAL
STRUCT jugador[1]; // 8 jugadores como máximo (de 0 a 7).
x,y;
END
id_red;
get_net;
string t;
private
g;
BEGIN
net.device=1;
net.max_players=2; // Se indica aquí el número de registros.
write(0,0,0,0,t);
repeat
if(key(_space)and!g);g=1;get_net=net_get_games();end
if(g and!key(_space));g=0;end
t="Buscando partidas(space):"+itoa(get_net)+" Enter,unirse...";
frame;
until(key(_enter)and get_net=>1);
id_red=net_join_game("xxx",OFFSET jugador, sizeof(jugador));
// El registro de este jugador es "jugador[id_red]"
loop
if(id_red=>0);
jugador[id_red].x=x; // Defino mis campos
jugador[id_red].y=y;
end
t="id_red="+itoa(id_red)+" x:"+itoa(x)+","+itoa(y)+" num_ply="+itoa(net.num_players)+" server="+itoa(net.server)+" get_g:"+itoa(get_net);
FRAME; // Envio / Recepción de datos
// Ahora hay conectados "net.num_players", y sus datos están en
// los demás registros de la estructura jugador[].
// ...
end
END