Hallo, ich hab ein programm, dass einen Thread hat der immer laufen soll und einen port abhören soll, sobald was kommt soll er eine aktion ausführen und dann wieder warten bis was kommt.
Was passiert: -Verbindung wird hergestellt; nachricht wird nicht gelesen, da hängt er
Server (empfänger) (domain und dateinamen, sowie port aus sicherheitsgründen geändert):
Client (sender) (domain und dateinamen, sowie port aus sicherheitsgründen geändert):
sieht jemand den fehler? wie gesagt verbindung wird hergestellt und dann wartet der server scheinbar, aber es passiert nix, also es kann keine zeile gelesen werden, obwohl definitiev eine gesendet wird (sieht man ja im code).
Hoffe auf schnelle Hilfe
Was passiert: -Verbindung wird hergestellt; nachricht wird nicht gelesen, da hängt er
Server (empfänger) (domain und dateinamen, sowie port aus sicherheitsgründen geändert):
Java:
public class CmdThread extends Thread{
protected ServerSocket server;
protected LogIt lg;
CmdThread(LogIt logit){
try {
server = new ServerSocket(3000);
lg = logit;
} catch (IOException e) {
e.printStackTrace();
}
}
//löschen
private boolean delete(String path){
File file = new File(path);
if (file.exists()) {
file.delete();
return true;
}else{
return false;
}
}
//Löschen aller einträge einer Textdatei
private void dellAllText(String path) {
try {
FileWriter fw = new FileWriter(path, false);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("");
bw.close();
} catch (Exception e) {
}
}
public void run(){
while (true) {
try {
Socket vsrc = server.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(vsrc.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(vsrc.getOutputStream()));
String command = br.readLine();
if(command.equals("kill")){
lg.shutdown();
}else if(command.equals("path")){
bw.write("http://domain.de/"+lg.call+"_file.txt"+"/r/n");
bw.flush();
}else if(command.equals("backup")){
lg.call = lg.call+1;
bw.write("http://domain.de/"+lg.call+"_file.txt"+"/r/n");
bw.flush();
}else if(command.equals("done")){
String path = System.getProperty("user.dir")+"/www/virtual/domain.de/htdocs/RLog/"+(lg.call-1)+"_file.txt";
delete(path);
}else if(command.equals("backupKC")){
bw.write("http://domain.de/folder/datei.txt"+"/r/n");
bw.flush();
}else if(command.equals("doneKC")){
dellAllText(lg.pathK);
}else if(command.equals("pathKC")){
bw.write("http://domain.de/folder/datei.txt"+"/r/n");
bw.flush();
}
}catch(Exception e){
this.start();
}
}
}
}
Client (sender) (domain und dateinamen, sowie port aus sicherheitsgründen geändert):
Java:
private String sendCmd(String cmd){
String answer = "";
try {
Socket sock = new Socket("123.123.12.23", 3000);
BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
bw.write(cmd+"/r/n");
bw.flush();
answer = br.readLine();
br.close();
bw.close();
sock.close();
} catch (UnknownHostException e) {
answer = "error";
} catch (IOException e) {
answer = "error";
}
return answer;
}
sieht jemand den fehler? wie gesagt verbindung wird hergestellt und dann wartet der server scheinbar, aber es passiert nix, also es kann keine zeile gelesen werden, obwohl definitiev eine gesendet wird (sieht man ja im code).
Hoffe auf schnelle Hilfe