Java server werkt niet..

Status
Niet open voor verdere reacties.

daffie97

Gebruiker
Lid geworden
24 nov 2009
Berichten
27
Hallo,

Mijn java server (Of flash swf) werkt niet goed, want hij ontvangt niks, pas na een paar keer ontvangt hij alles..

Dus ik klik, dan zend hij in de code wat. Maar er gebeurt niks..
Dan klik ik nog een paar keer dan komt opeens alle text..

Dit is mijn java server:
Code:
import java.io.BufferedReader;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.InterruptedIOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class PolicyServer extends Thread
{
	public static final int DEFAULT_PORT = 843; //11936;
	public static final String[] DEFAULT_POLICY = new String[] { "*" };
	public static final String POLICY_REQUEST = "<policy-file-request/>";
	public static final boolean DEBUG = true;
	public static void main(String[] args)
	{
		int port = DEFAULT_PORT;
		(new PolicyServer(port)).start();
	}
	//-------------------------------------------------------------------------------------
	private int _port;
	private boolean _listening;
	private ServerSocket _socketServer;
	private String _policy;
	public PolicyServer( int port_)
	{
		_port = port_;
		_listening=true;
		_policy = buildPolicy();
	}
	private String buildPolicy()
	{
		String hostname="*";
		String ports ="*";
		StringBuffer policyBuffer = new StringBuffer();
		policyBuffer.append("<?xml version=\"1.0\"?><cross-domain-policy>");
		policyBuffer.append("<allow-access-from domain=\""+hostname+"\" to-ports=\""+ports+"\" />");
		policyBuffer.append("</cross-domain-policy>");
		return policyBuffer.toString();
	}
	public void run()
	{
		try
		{
			_listening=true;
			_socketServer = new ServerSocket(_port,50);
			if (DEBUG) System.out.println("PolicyServer listening on port "+_port);
			while(_listening)
			{
				Socket socket = _socketServer.accept();
				try
				{
					if (DEBUG) System.out.println("PolicyServer got a connection on port "+_port);
					(new SocketConnection(socket)).start();
				}
				catch (Exception e)
				{
					if (DEBUG) System.out.println("Exception: "+e.getMessage());
				}
				try
				{
					sleep(1000);
				}
				catch (InterruptedException e) {}
			}
		}
		catch(IOException e)
		{
			if (DEBUG) System.out.println("IO Exception: "+e.getMessage());
		}
	}
	//-----------------------------------------------------------------------------------
	class SocketConnection extends Thread
	{
		private Socket _socket;
		private BufferedReader _socketIn;
		private PrintWriter _socketOut;
		public SocketConnection(Socket socket_)
		{
			_socket = socket_;
		}
		public void run()
		{
			try
			{
				_socket.setSoTimeout(10000);
				_socketIn = new BufferedReader(new InputStreamReader(_socket.getInputStream()));
				_socketOut =new PrintWriter(_socket.getOutputStream(), true);
			}
			catch (IOException e)
			{
				if (DEBUG) System.out.println("IO Exception "+e.getMessage());
				return;
			}

			readPolicyRequest();
		}
		private void readPolicyRequest()
		{
			try
			{
				if (POLICY_REQUEST.equals(read())) write(_policy);
			}
			catch (Exception e)
			{
				if (DEBUG) System.out.println("Exception "+e.getMessage());
			}
			close();
		}
		private String read() throws IOException, EOFException, InterruptedIOException
		{
			StringBuffer buffer = new StringBuffer();
			int codePoint;
			boolean zeroByteRead=false;
			
			if (DEBUG) System.out.println("Reading...");
			do
			{
				codePoint=_socketIn.read();
				if (codePoint==0) zeroByteRead=true;
				else buffer.appendCodePoint( codePoint );
			}
			while (!zeroByteRead && buffer.length()<100);
			if (DEBUG) System.out.println("Read: "+buffer.toString());
			
			return buffer.toString();
		}
		public void write(String msg)
		{
			_socketOut.println(msg+"\u0000");
			_socketOut.flush();
			if (DEBUG) System.out.println("Wrote: "+msg);
		}
		public void close()
		{
			try
			{
				if (_socket!=null) _socket.close();
				if (_socketOut!=null) _socketOut.close();
				if (_socketIn!=null) _socketIn.close();
			}
			catch (IOException e) {}
			_socketIn=null;
			_socketOut=null;
			_socket=null;
		}
	}
}

Dit is mijn flash swf code:

Code:
var socket:Socket = new Socket();
socket.addEventListener(Event.CONNECT, onConnect);
socket.addEventListener(Event.CLOSE, onClose);	
socket.addEventListener(IOErrorEvent.IO_ERROR, onError);	
socket.addEventListener(ProgressEvent.SOCKET_DATA, onResponse);
socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecError);
Security.allowDomain("*");
Security.loadPolicyFile("xmlsocket://url:5000");
socket.connect("url", 5000);

a.v.b. Daffie97
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan