Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
das Ziel meines Programmes is, die IP des Servers aus einem File auszulesen, da es auf Linux basiert hat es keine Dateiendung!! könnt ihr mir sagen wieso dieser Code ... den Fehler (unten ausgibt) und mir vielleicht helfen es zum laufen zu bekommen?
wie gesagt es gibt eine datei "ipclient" in dieser steht z.b. "192.168.10.20" drin und diese Ip soll er nehmen und hier
Socket anschluss = new Socket(gelesenChar,6000); verarbeiten! den Fehler seht ihr unten! isn ziemlich wichtiges projekt! ich komm wirklich nich drauf, bitte helft mir!!
ich denke das es damit zusammen hängt das es eine char variable is und er nen string will, ich weis jedoch nicht wie ich die datei auslese damit es ein string wird!! ich habe halt kaum ahnung von java ...
Code:
import java.net.*; //Paket java.net enthält die Klasse Socket
import java.io.*;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
class Client {
public static void main (String[] args) throws IOException, UnknownHostException{
File datei = new File("ipclient");
FileReader leser = new FileReader(datei);
// erzeugen einer Dauerschleife:
for(;;){
int gelesenInt = leser.read();
// Wenn kein Zeichen mehr zurückgegeben wird (= -1),
// dann ist das Dateienende ereicht,
// daher aufhören
if(gelesenInt == -1){break;}
// ein char wird als integer eingelesen!
//Daher als char umwandeln
char gelesenChar = (char) gelesenInt;
//Jedes Zeichen ausgeben
}
Socket anschluss = new Socket(gelesenChar,6000);
PrintWriter schreibeStrom = new PrintWriter(anschluss.getOutputStream(), true);
DataInputStream eingabe = new DataInputStream(System.in);
schreibeStrom.println("C:\\a.exe");
}
hier ist der Code meines Clients ... wenn ich diesen Compiliere bekomm ich folgenden Fehler:
Client.java:34: cannot resolve symbol
symbol : variable gelesenChar
location: class Client
Socket anschluss = new Socket(gelesenChar,6000);
import java.net.*; //Paket java.net enthält die Klasse Socket
import java.io.*;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;
class Client {
public static void main (String[] args) throws IOException, UnknownHostException{
File datei = new File("ipclient");
FileReader leser = new FileReader(datei);
// erzeugen einer Dauerschleife:
for(;;){
int gelesenInt = leser.read();
// Wenn kein Zeichen mehr zurückgegeben wird (= -1),
// dann ist das Dateienende ereicht,
// daher aufhören
if(gelesenInt == -1){break;}
// ein char wird als integer eingelesen!
//Daher als char umwandeln
char gelesenChar = (char) gelesenInt;
//Jedes Zeichen ausgeben
Socket anschluss = new Socket(gelesenChar,6000);
PrintWriter schreibeStrom = new PrintWriter(anschluss.getOutputStream(), true);
DataInputStream eingabe = new DataInputStream(System.in);
schreibeStrom.println("C:\\a.exe");
}
}
}
Code:
Client.java:30: cannot resolve symbol
symbol : constructor Socket (char,int)
location: class java.net.Socket
Socket anschluss = new Socket(gelesenChar,6000);
^
1 error
gleicher Fehler
hab mal ne neue methode versucht und zwar sieht das so aus:
Code:
import java.net.*; //Paket java.net enthält die Klasse Socket
import java.io.*;
class Client {
public static void main (String[] args) throws IOException, UnknownHostException{
String thisLine;
try {
BufferedReader in = new BufferedReader (
new FileReader ("ipclient") );
try {
while( (thisLine = in.readLine()) != null ) {
//System.out.println(thisLine);
Socket anschluss = new Socket(thisLine,6000);
PrintWriter schreibeStrom = new PrintWriter(anschluss.getOutputStream(), true);
DataInputStream eingabe = new DataInputStream(System.in);
schreibeStrom.println("C:\\a.exe");
}
in.close();
} catch (IOException e) {
System.out.println("Read error " + e);
}
}
catch (IOException e) {
System.out.println("Open error " + e);
}
}
}
jedoch bringt er mir hier (auf der maschine wo der client gestartet wurde) ein connection refused! und den server schließt er einfach ... ich habe keine einzige zeile gecodet die die komplette dosbox abschießen kann, man ich versteh das alles nich ... ich will doch nur aus ner datei ne ip auslesen und damit dann ne socketverbindung aufbaun .. niemand ne idee?
das heist? was muss ich machen damit es geht, nein hab gekuckt ich denk es geht auch mit char ... jedoch wieso läuft es nich??
was is ein konstruktor? kannst du nich machen das es geht, bzw mir sagen was ich ändern muss! is wirklich dringend! ich hätte sowas nie mit java gemacht wenns ned plattformunabhängig sein müsste!
es fliegt keine exeption der server geht einfach zu ....
ja es gibt eine ip ... der soll einfach nur eine verdammte ip aus dem file auslesen und zu der connecten .. mehr nich!!!
und es ging die ganze zeit ohne socket connect ...! und ja auf meinem rechner läuf ein server der auf 6000 hört es ging doch die ganze zeit!
Code:
Read error java.net.SocketException: Connection reset by pee
das kommt da wo ich den Client ausführe, auf meiner Linux maschine ... und auf meinem Windows schießt der client ab. ohne fehlermeldung, also dosbox geht einfach zu