Fala pessoal, estou fazendo um teste com um programa pequeno de bate papo para uma aplicação maior.
Tenho um servidor e um cliente, apenas o dois, sem mais usuarios e quero receber e enviar quantas mensagens quiser entre eles, porém consigo enviar e receber apenas 1 de cada e depois o programa trava. Vou postar meu código e se alguém puder me ajudar, vou agradecer 
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class SocketServidor extends Object{
/**
* @param args
* @throws IOException
*/
private static Scanner scan;
private static ServerSocket socketServer;
private static Socket socket;
private static DataInputStream di;
private static DataOutputStream dos;
public void Testar() throws Exception{
try
{
scan = new Scanner(System.in);
socketServer = new ServerSocket(30000);
socket = socketServer.accept();
di = new DataInputStream(socket.getInputStream());
dos = new DataOutputStream(socket.getOutputStream());
LerLinhaThread TTA = new LerLinhaThread();
Thread thA = new Thread(TTA);
EnviarLinhaThread TTB = new EnviarLinhaThread();
Thread thB = new Thread(TTB);
thA.start();
thB.start();
thA.sleep(1);
thB.sleep(1);
} catch (IOException e) {
e.printStackTrace();
}
}
class LerLinhaThread implements Runnable {
public String linha;
public void run() {
while((linha = scan.next())!=null){
if(linha != null)
f("Servidor escreveu: ".concat(linha));
}
}
public void f(String x) {
try {
dos.writeUTF(x);
} catch (IOException e) {
e.printStackTrace();
}
}
}
class EnviarLinhaThread implements Runnable {
public String linha;
public void run() {
try {
linha = di.readUTF();
System.out.println(linha);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String args[]){
SocketServidor t = new SocketServidor();
try {
t.Testar();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Se alguém puder dar um toque e tals, esse conceito de thread ainda é bastante confuso pra mim e as documentações que ando lendo nao estão ajudando muito.
Mas, estou tentando tirar minhas duvidas na pratica…