Hola.
Estoy intentando mandar mensajes entre un servidor de visual basic. net de está página (buscar en google PabloTilli_SocketsVBNET... no puedo escribir direcciones ni enlaces ) y recibirlos con flash as3.
Al enviar datos desde flash a .net funciona, pero no al contrario...
El código que tengo escrito es el siguiente:
var xmlsock:XMLSocket = new XMLSocket();
xmlsock.connect("127.0.0.1", 8050);
configureListeners(xmlsock);
xmlsock.addEventListener(DataEvent.DATA, ejemplo); //onData
function ejemplo(event:DataEvent):void
{
trace("datos del servidor: [" + event.type + "] " + event.data);
}
//Prueba de acciones al pulsar los botones
function AccionBoton1(event:MouseEvent):void
{
trace("BOTON1 PULSADO")
xmlsock.send("player1\n");
}
Btn1.addEventListener(MouseEvent.CLICK, AccionBoton1);
function AccionBoton2(event:MouseEvent):void
{
trace("BOTON2 PULSADO")
xmlsock.send("player2\n");
}
Btn2.addEventListener(MouseEvent.CLICK, AccionBoton2);
//-----------------------------------------------------------------
function configureListeners(dispatcher:IEventDispatcher):vo id {
dispatcher.addEventListener(Event.CLOSE, closeHandler);
dispatcher.addEventListener(Event.CONNECT, connectHandler);
dispatcher.addEventListener(DataEvent.DATA, dataHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS , progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SEC URITY_ERROR, securityErrorHandler);
}
function closeHandler(event:Event):void {
trace("closeHandler: " + event);
}
function connectHandler(event:Event):void {
trace("connectHandler: " + event);
}
function dataHandler(event:DataEvent):void {
trace("dataHandler: " + event);
}
function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
function progressHandler(event:ProgressEvent):void {
trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
}
function securityErrorHandler(event:SecurityErrorEvent):voi d {
trace("securityErrorHandler: " + event);
}
Este mismo código utilizando el servidor de java que pongo a continiación me funciona perfectamente:
import java.io.*;
import java.net.*;
class simpleServer
{
public static void main(String args[])
{
// Message terminator
char EOF = (char)0x00;
try
{
// create a serverSocket connection on port 9999
ServerSocket s = new ServerSocket(9999);
System.out.println("Probando: Server started. Waiting for connections...");
// wait for incoming connections
Socket incoming = s.accept();
BufferedReader data_in = new BufferedReader(
new InputStreamReader(incoming.getInputStream()));
PrintWriter data_out = new PrintWriter(incoming.getOutputStream());
data_out.println("Welcome! type EXIT to quit." + EOF);
data_out.flush();
boolean quit = false;
// Waits for the EXIT command
while (!quit)
{
String msg = data_in.readLine();
if (msg == null) quit = true;
/* if (!msg.trim().equals("EXIT"))
{
data_out.println("You sayed: <b>"+msg.trim()+"</b>"+EOF);
data_out.flush();
}*/
if (msg.trim().equals("player1"))
{
data_out.println("NUEVO Jugador: <b>"+msg.trim()+"</b>"+EOF);
data_out.flush();
}
else if (msg.trim().equals("player2"))
{
data_out.println("NUEVO Jugador: <b>"+msg.trim()+"</b>"+EOF);
data_out.flush();
}
else
{
quit = true;
}
}
}
catch (Exception e)
{
System.out.println("Connection lost");
}
}
}
Si alguien me pudiese ayudar a encontrar el probelma...
Saludos y gracias