public void receive(final SocketListener listener) {
		if(thread != null) {
			System.out.println("Can't recieve: Already receiving!");
			return;
		}
		thread = new Thread(new Runnable() {
			
			@Override
			public void run() {
				final Socket s = Socket.this;
				BufferedReader stream = null;

				while(!Thread.interrupted()) {
					try {
						if(s.isConnected()) {
							try {
								if(stream == null) {
									stream = new BufferedReader(new InputStreamReader(s.getInputStream()));
								}
								if(stream.ready()) {
									listener.dataRecived(stream.readLine(), s);
								} else {
								}
								
							} catch (IOException e) {
								e.printStackTrace();
							}
						}
		
						Thread.sleep(100);
						
					} catch (InterruptedException e) {
						return;
					}
				}
				
			}
		});
		thread.start();
	}