Miren tengo este cliente de sockets en as3:
package socket
{
import flash.net.Socket;
import flash.errors.IOError;
/**
* ...
* @author Daniel
*/
public class Conection
{
public static var cliente:Socket;
public static var cadena:String;
public static function Init(host:String, port:int):void
{
try
{
trace("Sockets iniciados");
cliente = new Socket(host, port); // Iniciamos los sockets (Cliente)
trace("Conectado a [" + host + ":" + port + "]"); // Mostramos a donde estamos conectados}
cliente.writeUTFBytes("mensaje enviado desde el cliente");
cliente.flush();
trace("Mensaje enviado");
}
catch (e:IOError)
{
trace(e);
}
}
}
}y este servidor en java:
package socket;
import java.net.Socket;
import java.net.ServerSocket;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Conection {
public static ServerSocket server;
public static Socket socket;
public static DataOutputStream add;
public static String mr;
public static BufferedReader br;
public void Init(int port) {
try
{
System.out.println("Esperando clientes");
// Init connection
server = new ServerSocket(port); // Iniciamos los sockets (servidor)
socket = server.accept(); // Aceptamos la conexión del cliente
// Manage connection
System.out.println("Se conectó un cliente al servidor");
///add = new DataOutputStream(socket.getOutputStream()); // Creando instancia para enviar paquetes al cliente
///add.writeUTF("Bienvenido!"); // Se envía el dato tipo "string" al cliente
add = new DataOutputStream(socket.getOutputStream());
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
mr = br.readLine();
System.out.println("El cliente envió un mensaje: " + mr);
// Close connection
br.close();
add.close(); // Cerramos la instancia que envia paquetes
socket.close(); // Cerramos la conexión con el cliente
server.close(); // Cerramos el servidor de sockets
System.out.println("Sockets cerrados");
} catch (Exception e) {
e.printStackTrace();
}
}
}Entonces la línea 22 del cliente de as3, no me lo envía:
cliente.writeUTFBytes("mensaje enviado desde el cliente");No lo envía hasta que cierro el cliente y lo envía.
También quisiera saber como hacer un readUTF en el cliente para leer paquetes enviados desde el servidor.
O algún tutorial o alguien que sepa expliquen.
Gracias y ayudame!!
