Hi, ich ein kleines Problem, und zwar möchte ich von meinem Android Smartphone Strings über Sockets verschicken.
Die sollen dann bei meinem Pc landen und von bem Pc soll ein neues Paket gesendet werden.
Etwas vom Client (dem smartphone) zum server (der Pc) zu senden ist kein Probem. der Pc soll dan aber auch was wieder zurücksenden. und genau das macht er nicht.
Hier der Code vom Client:
Hier der code vom Server:
Der server gibt das vom Client gesendete Package aus. Der client gibt aber nicht das vom server gesendete Package aus.
Wär toll wen jemand die lösung weis
Die sollen dann bei meinem Pc landen und von bem Pc soll ein neues Paket gesendet werden.
Etwas vom Client (dem smartphone) zum server (der Pc) zu senden ist kein Probem. der Pc soll dan aber auch was wieder zurücksenden. und genau das macht er nicht.
Hier der Code vom Client:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;
import java.net.UnknownHostException;
class StringClient {
public static String output;
public static void main(final String input) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
Socket socket = null;
try {
System.out.println("Try to cconnect to Socket server");
socket = new Socket(MainActivity.host, 9552);
System.out.println("Connected to Socket");
OutputStream raus = socket.getOutputStream();
PrintStream ps = new PrintStream(raus, true);
ps.println(MainActivity.id + ":" + MainActivity.password + ":" + input);
System.out.println("OUT to server " + MainActivity.host + MainActivity.id + ":" + MainActivity.password + ":" + input);
InputStream rein = socket.getInputStream();
System.out.println("verf\u00FCgbare Bytes: " + rein.available());
BufferedReader buff = new BufferedReader(new InputStreamReader(rein));
while (buff.ready()) {
System.out.println("IN from server " + MainActivity.host + buff.readLine());
System.out.println(buff.readLine());
String packages = buff.readLine();
if(packages.contains(MainActivity.id) && packages.contains(MainActivity.password)){
packages.replace(MainActivity.id, "");
packages.replace(MainActivity.password, "");
packages.replace(":", "");
output = packages;
}else{
System.out.println("Invalid Package");
}
}
} catch (UnknownHostException e) {
System.out.println("Unknown Host...");
e.printStackTrace();
} catch (IOException e) {
System.out.println("IOProbleme...");
e.printStackTrace();
} finally {
if (socket != null)
try {
socket.close();
System.out.println("Socket geschlossen...");
} catch (IOException e) {
System.out.println("Socket nicht zu schliessen...");
e.printStackTrace();
}
}
}
});
thread.start();
}
}
Hier der code vom Server:
Java:
class Main {
public static void main(String argv[]) throws Exception {
while(true) {
try{
ServerSocket server = new ServerSocket(9552);
Socket s = server.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
String text = in.readLine();
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
System.out.println(text);
out.write("test:test:PACKAGE");
out.newLine();
out.flush();
out.close();
in.close();
server.close();
}catch(Exception e){
System.out.println(e);
}
}
}
}
Der server gibt das vom Client gesendete Package aus. Der client gibt aber nicht das vom server gesendete Package aus.
Wär toll wen jemand die lösung weis