Java:
class LikesServer extends Thread implements Runnable
{
int port=9999;
static void echo(final int port) throws IOException
{
try (final ServerSocket server = new ServerSocket()) {
server.bind(new InetSocketAddress(port));
while (true) {
final Socket acceptedSocket = server.accept();
new Thread(() -> {
try (final Socket socket = acceptedSocket) {
final InputStream in = socket.getInputStream();
final OutputStream out = socket.getOutputStream();
int c;
while ((c = in.read()) != -1) {
System.out.write((byte) c);
out.write((byte) c);
}
}
catch (final IOException e) {
System.err.println(e.getMessage());
}
}).start();
}
}
}
}
Wie kann ich jetzt dem Server sagen er darf nur bestimmte Sachen akzeptieren.
Er soll nur zwei sachen akzeptieren, einmal das Topic und einmal den user.
Dies soll zeilenweise geschehen mit einem zeilenumbruch.
Dies ist der code den ich als client habe:
Java:
* @param topic Das Thema, das gemocht wird. Darf keine Leerzeichen
* enthalten.
* @param user Die Nutzer*in, die dieses Thema mag. Darf keine
* Leerzeichen enthalten.
* @throws IllegalArgumentException "topic" oder "user" sind null
* oder enthalten Leerzeichen.
*/
@Override
public void add(final String topic, final String user)
{
if (topic == null || topic.indexOf(" ") != -1
|| user == null || user.indexOf(" ") != -1) {
throw new IllegalArgumentException("LikesClient.add: Ungültige Parameter");
}
if (socket != null) {
try {
final PrintStream out = new PrintStream(socket.getOutputStream());
out.println("add " + topic + " " + user);
out.flush();
}
catch (final IOException e) {
close(); // Schließen, da die Verbindung wohl nicht mehr besteht.
}
}
}