91 lines
2.6 KiB
Java
Executable File
91 lines
2.6 KiB
Java
Executable File
package schule.ngb.zm.util.abi; /**
|
|
* <p>
|
|
* Materialien zu den zentralen NRW-Abiturpruefungen im Fach Informatik ab 2018
|
|
* </p>
|
|
* <p>
|
|
* Klasse Connection
|
|
* </p>
|
|
* <p>
|
|
* Objekte der Klasse Connection ermoeglichen eine Netzwerkverbindung zu einem
|
|
* Server mittels TCP/IP-Protokoll. Nach Verbindungsaufbau koennen Zeichenketten
|
|
* (Strings) zum Server gesendet und von diesem empfangen werden. Zur
|
|
* Vereinfachung geschieht dies zeilenweise, d. h., beim Senden einer
|
|
* Zeichenkette wird ein Zeilentrenner ergaenzt und beim Empfang wird dieser
|
|
* entfernt. Es findet nur eine rudimentaere Fehlerbehandlung statt, so dass z.B.
|
|
* der Zugriff auf unterbrochene oder bereits getrennte Verbindungen nicht zu
|
|
* einem Programmabbruch fuehrt. Eine einmal getrennte Verbindung kann nicht
|
|
* reaktiviert werden.
|
|
* </p>
|
|
*
|
|
* @author Qualitaets- und UnterstuetzungsAgentur - Landesinstitut fuer Schule
|
|
* @version 30.08.2016
|
|
*/
|
|
|
|
import java.net.*;
|
|
import java.io.*;
|
|
|
|
public class Connection
|
|
{
|
|
private Socket socket;
|
|
private BufferedReader fromServer;
|
|
private PrintWriter toServer;
|
|
|
|
public Connection(String pServerIP, int pServerPort)
|
|
{
|
|
try
|
|
{
|
|
socket = new Socket(pServerIP, pServerPort);
|
|
toServer = new PrintWriter(socket.getOutputStream(), true);
|
|
fromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
//Erstelle eine nicht-verbundene Instanz von Socket, wenn die avisierte
|
|
//Verbindung nicht hergestellt werden kann
|
|
socket = null;
|
|
toServer = null;
|
|
fromServer = null;
|
|
}
|
|
}
|
|
|
|
public String receive()
|
|
{
|
|
if(fromServer != null)
|
|
try
|
|
{
|
|
return fromServer.readLine();
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
}
|
|
return(null);
|
|
}
|
|
|
|
public void send(String pMessage)
|
|
{
|
|
if(toServer != null)
|
|
{
|
|
toServer.println(pMessage);
|
|
}
|
|
}
|
|
|
|
public void close()
|
|
{
|
|
|
|
if(socket != null && !socket.isClosed())
|
|
try
|
|
{
|
|
socket.close();
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
/*
|
|
* Falls eine Verbindung geschlossen werden soll, deren Endpunkt nicht
|
|
* mehr existiert bzw. seinerseits bereits geschlossen worden ist oder
|
|
* die nicht korrekt instanziiert werden konnte (socket == null), geschieht
|
|
* nichts.
|
|
*/
|
|
}
|
|
}
|
|
}
|