Odświeżanie w tle TextArea

0

Witam,

zabrałem się ostatnio za prosty komunikator (coś podobnego do irc), wykorzystując Sockety. Łącząc się z serwerem wysyłam mu dane i każdy zalogowany może zobaczyć wiadomość. Mam jednak problem z wyświetlaniem danych. Co mogę zrobić (wykorzystując JavaFX) aby w TextArea były wyświetlane wiadomości na bieżąco ?

 public class MainChatPane implements Initializable {

	static Socket socket;
	static DataOutputStream dos;
	static BufferedReader in ;
	
    @FXML
    private MenuItem menuDisconnect;

    @FXML
    private Button ButtonSend;

    @FXML
    private TextArea TAchat;

    @FXML
    private TextField TFmess;
  
    @FXML
    private Label SocketInfo;
    
    
	@Override
	public void initialize(URL location, ResourceBundle resources) {
		OpenConnection();
		TAchat.setDisable(true);
		
		if(TFmess != null){
			ButtonSend.addEventHandler(ActionEvent.ACTION, new EventHandler<ActionEvent>(){
				@Override
				public void handle(ActionEvent event){

			
					String linia = TFmess.getText().toString();
					try {
						dos.writeUTF(MainWinController.nickname + " : " + linia);
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}

					TFmess.setText(null);
							
				}
			});
		}
	}
	

	
	public void OpenConnection(){
		
		try{
			
			socket = new Socket(MainWinController.host, Integer.parseInt(MainWinController.port));
			SocketInfo.setText("Connected to: " + MainWinController.host +":"+MainWinController.port);
			
			dos = new DataOutputStream(socket.getOutputStream());
			
			in = new BufferedReader(
			        new InputStreamReader(socket.getInputStream()));
		}catch(IOException e){
		}
	}

}

w powyższym kodzie mam tylko opcję wysyłania wiadomości do serwera. Co zrobić żeby na bieżąco pobierało ?
Próbowałem z wątkami, ale procesor strasznie jest wtedy obciążony.

0

z tego co wiem komunikacja po socketach jest w obie strony. możesz mieć osobny wątek w javie w tym programiku, który będzie słuchać na tym socketcie no i jak serwer wyśle wiadomość to aplikacja kliencka to po prostu pokaże. nie musisz za każdym razem odpytywac serwera czy ma dla Ciebie nowe wiadomości.

1 użytkowników online, w tym zalogowanych: 0, gości: 1