/* * Copyright (C) 2021 eichehome * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package utils; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.logging.Logger; import java.util.logging.Level; /** * Dies Klasse stellt einen Client mit seinen Streams dar. * * @version 1.0.0 * @author eichehome */ public class Client { /** * Attribut, welches den Stream enthält, in dem Nachrichten an den Thread * geschickt werden können, der diese an den Client weiterleitet. */ private final ObjectOutputStream out; /** * Attribut, welches einen Zeiger auf den Thread enthält, welcher * Nachrichten an den Client schickt. */ private final Thread sender; /** * Attribut, welches einen Zeiger auf den Thread enthält, welcher * Nachrichten von dem Client empfängt. */ private final Thread reciver; /** * Konstruktor * * @param out Stream, um diesem Client Nachrichten schicken zu können. * @param sender Zeiger auf den Thread, der die Nachrichten an den Client * sendet. * @param reciver Zeiger auf den Thread, der die Nachrichten eines Clients * empfängt. */ public Client(ObjectOutputStream out, Thread sender, Thread reciver) { this.out = out; this.sender = sender; this.reciver = reciver; } /** * Schreibe eine Nachricht in den OutputStream dieses Clients. * * @param message Die zu verschickende Nachricht. */ public void writeMessage(Message message) { try { this.out.writeObject(message); } catch (IOException ex) { Logger.getLogger(Client.class.getName()).log(Level.SEVERE, String.format("Client: Fehler: %s", ex)); } } /** * Getter für den OutputStream diese Clients * * @return Zeiger auf den Stream. */ public ObjectOutputStream getOutputStream() { return this.out; } /** * Getter für den Thread, der Nachrichten an diesen Client sendet. * * @return Zeiger auf den Thread. */ public Thread getSender() { return this.sender; } /** * Getter für den Thread, der Nchrichten an diesen Client sendet. * * @return Zeiger auf den Thread. */ public Thread getReciver() { return this.reciver; } }