(MX) Kommunikation über Sockets

rAvEnXXL

Mitglied
Hallo,
Ich habe versucht, ein klassisches PING-PONG Spiel zu programmieren, in dem der eine Schläger lokal und der andere auf einem anderen PC gesteuert wird. Die Kommunikation zwischen Server und (Flash-)Client erfolgt also über Sockets.

Die Verbindung konnte zwar aufgebaut werden und auch ein PING gesendet werden. Im zweiten Frame besteht die Verbindung zwar immer noch, das weitere Versenden von Daten ist jedoch nicht mehr möglich.

Das AS aus dem ersten Frame:
PHP:
var socket:XMLSocket = new XMLSocket();

socket.onData = function(data) {
	if (data == _root.pkt)
	{_root.ausgabe = _root.pkt}
	else
	{
	_root.ausgabe = "PONG erhalten";
	_root.gotoAndPlay(2);
	}
};

socket.connect("192.168.2.87", 2003);

_root.butsok.onRelease = function() {
	socket.send("PING");
	_root.buttontest = "gedrueckt";
}
stop();
Hier wird also eine Verbindung zu 192.168.2.87 auf Port 2003 hergestellt und PING gesendet. Das Serverscript schickt direkt nach Erhalt alle Daten zurück (hier das "PING"). Soweit funktioniert alles gut.

Im zweiten Frame versuche ich mittels
PHP:
socket.send(_root.pkt);
den Inhalt aus der Variable _root.pkt an den Server zu verschicken. Jetzt kommt aber nichts davon an.

Das Java-Programm auf dem Server:
PHP:
import java.net.*;
import java.io.*;

public class Test01 {

 public static void main (String args[]) throws IOException {

  ServerSocket mySocketServer = new ServerSocket(2003);

  System.out.print("Waiting for FlashClient ...\n");
  Socket mySocket = mySocketServer.accept();

  System.out.print("FlashClient connected.\n\n");

  mySocketServer.close();   

  InputStream in = mySocket.getInputStream();
  OutputStream out = mySocket.getOutputStream();
    
  byte buffer[] = new byte[1];
  int i;

  do
  {
    i = in.read(buffer, 0, 1);
    if (i>-1) {
    	out.write(buffer, 0, 1);
    }
  } while(i>-1);

  System.out.print("Lost connection to FlashClient.\n\n");

  in.close();
  out.close();

  mySocket.close();

 }
}

Anbei noch die fla, swf und class


Vielen Dank schon mal im Vorraus!
rAvEn
 
Zuletzt bearbeitet:
Lost Connection

Hi rAvEnXXL

knifflige Sache ey...

frage: warum legst Du die Anfrage "socket.send(_root.pkt);" auf einen zweiten Frame ? wrap die Methode doch in einen EventHandler auf deinem ersten frame
wo auch der rest deines Codes steht.

Vielleicht tut es dann... Auch könntest Du mal probieren die Socket Variable
'socket' mit this.socket zu ersetzen. Wenn dann noch dein Script auf einem Keyframe liegt müsste das problem behoben sein.

Wenn ich mioch nicht täusche <grin> was vorkommt <big grin>

probiers mal aus und lass es uns wissen obs tut...

gruss prototyper
 

Neue Beiträge

Zurück