Tach zusammen,
ich stehe nun vor der nächsten herasuforderung und zwar habe ich bereits mit Sockets eine verbindung von PC(Client) zum Raspberry PI 3 B (Server) hergestellt nun möchte ich eine abfrage an den Server senden wie z.b.
Das soll so sein das der Client etwas an den Server sended wie userExist und der Server daraufhin antwortet ob er existiert oder nicht. Wenn jemand mir Helfen könnte wäre sehr nett.
MFG
Elias17
P.S. Meine Rechtschreibung ist nicht die Beste.
Client:
Server:
Handler:
ich stehe nun vor der nächsten herasuforderung und zwar habe ich bereits mit Sockets eine verbindung von PC(Client) zum Raspberry PI 3 B (Server) hergestellt nun möchte ich eine abfrage an den Server senden wie z.b.
Code:
if(!Existiert dieser User schon?) {
createUser();
}
MFG
Elias17
P.S. Meine Rechtschreibung ist nicht die Beste.
Client:
Java:
package de.elias.viki.manager;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class SocketsClient {
public static void sendBefehl(String befehl) {
try {
final Socket client = new Socket("192.168.178.48", 177);
System.out.println("<- Client gestartet ->");
// Streams
final DataOutputStream out = new DataOutputStream(client.getOutputStream());
final PrintWriter writer = new PrintWriter(out);
final DataInputStream in = new DataInputStream(client.getInputStream());
final BufferedReader reader = new BufferedReader(new InputStreamReader(in));
// -----------------------------------
writer.write(befehl + "\n");
writer.flush();
reader.close();
writer.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Server:
Java:
package de.elias.viki.manager;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class SocketsServer {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(10);
try {
ServerSocket server = new ServerSocket(177);
System.out.println("<- Server gestartet ->");
while (true) {
try {
Socket client = server.accept();
executor.execute(new Handler(client));
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
Handler:
Java:
package de.elias.viki.manager;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.UUID;
import de.elias.viki.Methods;
import de.elias.viki.mysql.Stats;
public class Handler implements Runnable {
private Socket client;
public Handler(Socket client) {
this.client = client;
}
@Override
public void run() {
try {
// Streams
DataOutputStream out = new DataOutputStream(client.getOutputStream());
PrintWriter writer = new PrintWriter(out);
DataInputStream in = new DataInputStream(client.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
// -----------------------------------
String s = null;
while ((s = reader.readLine()) != null) {
System.out.println(s);
if (s.contains("LED")) {
Ausgabeleitunge.main(null);
}
String msg = s;
String[] cmdAndArgs = msg.split("\\s+");
String cmd = cmdAndArgs[0];
if ("mysql".equalsIgnoreCase(cmd)) {
String subCmd = cmdAndArgs[1];
if ("createUser".equalsIgnoreCase(subCmd)) {
String name = cmdAndArgs[2];
String pass = cmdAndArgs[3];
String uid = String.valueOf(Methods.uuidGenerator());
System.out.println("[MySQL] Name: " + name + " Passwort: " + pass + " UID: " + uid);
if (!Stats.userExists(name)) {
for (int i = 1; i < 6; i++) {
if (!Stats.idExists(i, "VIKI_USER_login")) {
Stats.createUser(i, "NULL", name, pass, uid);
}
}
}
}
if("setLogged".equalsIgnoreCase(subCmd)) {
String id = cmdAndArgs[2];
String uid = cmdAndArgs[3];
String name = cmdAndArgs[4];
String time = cmdAndArgs[5];
System.out.println("[MySQL] SetLogged: ID: " + id + " UID: " + uid + " Name: " + name + " Time:" + time);
Stats.setLogged(Integer.valueOf(id), uid, name, time);
}
if("deleteLogged".equalsIgnoreCase(subCmd)) {
int id = Integer.valueOf(cmdAndArgs[2]);
String UID = Stats.get("VIKI_INFO_logged", "ID", String.valueOf(id), "UID");
String name = Stats.get("VIKI_USER_login", "UID", UID, "Name");
System.out.println("[MySQL] DeleteLogged: ID: " + id + " UID: "+ UID + " Name: " + name);
Stats.deleteLogged(String.valueOf(id));
}
}
}
writer.close();
reader.close();
client.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}