Java typ Client

0

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

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:

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.

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:

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.

private List<client> clientList = new ArrayList<>();
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.

0

No to przykro ;) Dzięki.

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.

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?

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();
    }
}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1