1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Sockets e Threads

Bom estou com um pequeno problema em um exercício que peguei aqui da Caelum

nesta pagina: http://www.caelum.com.br/apostila-java-orientacao-objetos/apendice-sockets/

da um exemplo de servidor usando sockets quando vou usar uma dica que foi passada na pagina

Multithreading

Para que o servidor seja capaz de trabalhar com dois clientes ao mesmo tempo é necessário criar uma thread logo após executar o método accept.

A thread criada será responsável pelo tratamento dessa conexão, enquanto o laço do servidor disponibilizará a porta para uma nova conexão:


while (true) {

  Socket cliente = servidor.accept();

  // cria um objeto que vai tratar a conexão
  TratamentoClass tratamento = new TratamentoClass(cliente);

  // cria a thread em cima deste objeto
  Thread t = new Thread(tratamento);

  // inicia a thread
  t.start();

}

no meu compilador ele não compila ele diz que "Cannot find symbol: class TratamentoClass".

GOSTARIA DE SABER ONDE ERREI NO CODIGO! PARA QUE EU POSSAR SANAR O PROBLEMAR E ASSIM APRENDER!

Aqui está meu código!

package broadcast;

import java.io.*;
import java.net.*;
import java.util.Scanner;

public class Servidor{
    public static void main(String[] args) throws IOException{

        ServerSocket servidor = new ServerSocket(7000);
        System.out.println("Porta : 7000 Aberta!");
        while(true){
            Socket cliente = servidor.accept();
            TratamentoClass tratamento = new TratamentoClass(cliente);
            Thread t = new Thread(tratamento);
            t.start();
            System.out.println("Nova conexão com o cliente "+cliente.getInetAddress().getHostAddress());
            Scanner s = new Scanner(cliente.getInputStream());
            while(s.hasNextLine()){
                System.out.println(s.nextLine());
            }
            s.close();
            servidor.close();
            cliente.close();
        }
    }
}

Editado 26/08/15 12:18 ==========

o que quero aprender e como fazer para aceitar varias conexões!

package servidor;

import java.io.*;
import java.net.*;
import java.util.*;
public class Servidor {
    public static void main(String[] args) throws IOException{
        ServerSocket servidor = new ServerSocket(7000);
        System.out.println("Porta 7000 Aberta com sucesso!");

        Socket cliente = servidor.accept();
        String usuario = cliente.getInetAddress().getHostAddress();
        System.out.println("Nova conexão com o cliente "+usuario);

        Scanner s = new Scanner(cliente.getInputStream());
        while(s.hasNextLine()){
            System.out.println(usuario+": "+s.nextLine());
        }

        s.close();
        servidor.close();
        cliente.close();
    }
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java sockets threads ou faça a sua própria pergunta.