97 lines
2.5 KiB
Java
97 lines
2.5 KiB
Java
/*
|
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
|
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Main.java to edit this template
|
|
*/
|
|
|
|
package ChatProgramm.model;
|
|
|
|
import ChatProgramm.model.Transmitter;
|
|
import java.io.BufferedReader;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.io.OutputStream;
|
|
import java.io.OutputStreamWriter;
|
|
import java.io.PrintWriter;
|
|
import java.net.ServerSocket;
|
|
import java.net.Socket;
|
|
import java.util.logging.*;
|
|
|
|
/**
|
|
* Builder Class
|
|
* @author le
|
|
*/
|
|
public class Server extends Transmitter
|
|
{
|
|
private static Logger lg = Logger.getLogger("netz");
|
|
|
|
private Socket socket;
|
|
private BufferedReader reader;
|
|
private PrintWriter writer;
|
|
|
|
private static final int PORT = 35000; //lt. iana port > 2¹⁵
|
|
|
|
public void connect() throws IOException
|
|
{
|
|
try
|
|
{
|
|
ServerSocket sSocket = new ServerSocket(PORT);
|
|
sSocket.setSoTimeout(timeout);
|
|
lg.info("Server: warte auf Verbindung");
|
|
socket = sSocket.accept();
|
|
lg.info("Server: Verbindung akzeptiert");
|
|
|
|
lg.info("Server: initialisiere reader und writer");
|
|
InputStream is = socket.getInputStream();
|
|
OutputStream os = socket.getOutputStream();
|
|
|
|
InputStreamReader isr = new InputStreamReader(is, "UTF-8");
|
|
OutputStreamWriter osr = new OutputStreamWriter(os, "UTF-8");
|
|
|
|
reader = new BufferedReader(isr);
|
|
writer = new PrintWriter(osr);
|
|
lg.info("Server: Initialisierung abgeschlossen");
|
|
|
|
lg.info("Server: warte auf Nachricht");
|
|
|
|
}
|
|
catch ( java.io.InterruptedIOException e )
|
|
{
|
|
lg.warning("Timeout"+"("+timeout/1000+"s)");
|
|
}
|
|
|
|
}
|
|
public Server() throws IOException
|
|
{
|
|
connect();
|
|
|
|
// String nachricht = in.readLine(); // ACHTUNG blockiert
|
|
// lg.info("Server: Nachricht erhalten");
|
|
// System.out.println("Server: NACHRICHT = " + nachricht);
|
|
//
|
|
// // ACHTUNG: blockiert NICHT!!!!
|
|
// out.println("Server an Client: Nachricht erhalten");
|
|
// out.flush(); // wichtig
|
|
//
|
|
// lg.info("Server: fertig");
|
|
// in.close();
|
|
// out.close();
|
|
// s.close();
|
|
}
|
|
|
|
/**
|
|
* @param args the command line arguments
|
|
*/
|
|
public static void main(String[] args)
|
|
{
|
|
try
|
|
{
|
|
new Server();
|
|
}
|
|
catch (IOException ex)
|
|
{
|
|
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
|
|
}
|
|
}
|
|
}
|