Java typ Client

IJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 139
0

Witam. Mam takie może głupie pytanie, czy jest taki typ jak Client?
Dostałem taki kod:

Kopiuj
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

class dod extends Thread
{
    private ServerSocket serverSocket;
    private List<client> clientList;

    public dod(int port) throws IOException
    {
        serverSocket = new ServerSocket(port);
        clientList = new ArrayList<>();
    }
    @Override
    public void run()
    {
        while(true)
        {
            try
            {
                Socket clientSocket = serverSocket.accept();
                int id = clientList.size(); //generujesz jakieś id
                Client newClient = new Client(id, clientSocket);
                clientList.add(newClient);
                newClient.start();
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
    }


    public static void main(String[] args) throws IOException
    {
        dod server = new Server(9999);
        server.start();
    }


i jest błąd:

Kopiuj
Error:(10, 18) java: cannot find symbol
  symbol:   class client
  location: class dod

Error:(26, 17) java: cannot find symbol
  symbol:   class Client
  location: class dod

Error:(26, 40) java: cannot find symbol
  symbol:   class Client
  location: class dod

Error:(40, 26) java: cannot find symbol
  symbol:   class Server
  location: class dod

Proszę o sensowne odpowiedzi, bez bezsensownego krytykowania.
Z góry dzięki.

R3id4k
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 175
0

Nazwy klas piszemy z dużej litery "dod -> Dod". Każda stworzona klasa, określa "typ".
Lista generyczna przechowuje obiekty określonego typu (klasy, interfejsu...) więc:

Kopiuj
to
private List<client> clientList;

powinno wyglądać tak:
private List<Client> clientList;

Ja uczyłem się aby nie używać konstruktora do inicjalizacji pól klasy jeśli nie przekazujesz do nich argumentów z zewnątrz w momencie tworzenia obiektu.

Kopiuj
private List<client> clientList = new ArrayList<>();
jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
0

Odpowiadając wprost na pytanie.
Nie ma akiego typu w standardowych klasach JDK i w popularnych bibliotekach.
Ktoś Ci nie dał całego kodu.

IJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 139
0

No to przykro ;) Dzięki.

IJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 139
0

A jak to jest z Multithreadingiem w Javie? Gdy utworzę sobie wątek to wiele klientów się podłączy (pomijając całą proceduję łączenia i komunikacji server-client w wątku)?
Jeśli nie to prosiłbym o podlinkowanie jakiegoś polskiego tutoriala/artykułu o Multithreadingu w Javie.

E9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 216
0

:D :D wysłałem Ci ten kod w temacie gdzie prosiłeś o pomoc jakieś 2 tygodnie temu? A Ty naprawdę przez ten cały czas nie zauważyłeś że wkleiłem tam również inną klasę, dokładnie tą której szukasz?

Kopiuj
public class Client extends Thread{
private int id;
private Socket socket;
private OutputStream outputStream;
private InputStream inputStream;

public Client(int id, Socket socket){
    this.id = id;
    this.socket = socket;
}

@Override
public void run(){
    try {
        outputStream = socket.getOutputStream();
        inputStream = socket.getInputStream();
        String greetingMessage = "Hello I'm new client with id: " + id;
        outputStream.write(greetingMessage.getBytes());
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.