ciao avevo in mente di realizzare una simil chat.. senza un server.. ma con connessioni dirette..
ma c'è qualcosa che non mi torna..
su entrambi i client che voglio far dialogare apro un thread e rimango in ascolto tramite ServerSocket

codice:
	public void run() {

		try{
			ServerSocket ss = new ServerSocket(9080,100, InetAddress.getLocalHost());
			while(true) {
				// se ricevo chiamate
				Socket socket = ss.accept();
				
				// avvio client socket
				SocketThread st = new SocketThread(socket, null);
				st.run();
			}
		}catch(Exception e){
			e.printStackTrace();
		}

	}
quando ricevo un messaggio lo leggo e chiudo il socket (non il serverSocket)
codice:
	public void run() {

		try {
			in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
			String message = in.readLine();
			System.out.println(socket.getInetAddress() + "> " + message);
			socket.close();	
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
per inviare un messaggio invece apro il socket, invio il messaggio e chiudo il socket immediatamente..
codice:
public void sendMessage(){
		
		try {
			String key = list.getItem(list.getSelectionIndex());
			Socket sd = new Socket((String)contatti.get(key), 9080);
			PrintWriter out = new PrintWriter(sd.getOutputStream(), true);
			out.println(textArea.getText());
			sd.close();
		} catch (UnknownHostException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
funziona tutto, ma dal punto di vista delle performance, del traffico etc ?
è giusto continuare ad aprire e chiudere socket ?
quello che voglio non è una vera chat, quindi mi pare inutile tenere aperto il socket..
o sbaglio ??