Sockets

Bom eu estava vendo sockets em java e encontrei um código pela net, eu utilizei ele em um programa e o programa travou, o código é esse :

import java.net.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Sockets 
{
    String mensagem;
    
    Sockets()
    {
        try
        {
        ServerSocket socket = new ServerSocket(12345);
        
        while(true)
        {
           Socket s;
                s = socket.accept();
                InputStream i = s.getInputStream();
                OutputStream o = s.getOutputStream();
                do
                {
                    byte[] line = new byte[100];
                    i.read(line);
                    o.write(line);
                    mensagem = new String(line);
                }while(!mensagem.trim().equals("bye"));
                s.close();
            }
        } catch (IOException ex)
           {
                Logger.getLogger(Sockets.class.getName()).log(Level.SEVERE, null, ex);
           }
    }
}

alguém poderia comentar(explicar) ele pra mim? e falar também um pouco sobre as classes que foram usadas…
Agradeço a quem puder ajudar.

Dá uma lida nessa apostila aqui, que no final da apostila ele fala um pouco sobre comunicação em Socket.
Ela é boa porque fala da linguagem Java, das API’s mais usadas e de OO (Orientação a Objetos).

www.caelum.com.br/download/caelum-java-objetos-fj11.pdf

Boa sorte.

Este é um programa servidor que recebe uma string utilizando socket e envia a mesma string para o programa cliente.

i.read(line); o.write(line);Imagino que o programa não tenha travado, mas que você não tenha executado um cliente que enviaria uma mensagem para o servidor.

Lucas vou ver a apostila valeu ae.

heatcold acho que foi isso mesmo, ele parou e ficou um bom tempo “travado” mas não apareceu aquela msg de erro do windows quando o programa trava.