Hallo liebes Forum, ich habe gerade mal mit meinem Buch was kleine geschrieben. Lokal läuft das auch alles, bloß über das Internet gehts nicht. Kann mir jemand sagen, wo der Fehler liegt? Die übergebene IP-Adresse beim Socket des Client habe ich einfach aus dem buch übernommen, aber da muss die eigene hin, nur wie komm ich an die?Ist das überhaupt der Fehler? Falls nicht wo dann?
Projekt Client
Projekt Server
Gruß
Projekt 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.PrintWriter;
import java.net.Socket;
import javax.swing.JFrame;
public class Client {
private int port = 4XXX;
String ergebnis;
String aufgabe;
Gui fenster;
public Client(Gui fenster)
{
this.fenster = fenster;
}
public void abgehts()
{
try(Socket socket = new Socket("127.0.0.1", port); //-------------------- Problem hier?----------------------
OutputStream streamOut = socket.getOutputStream();
InputStream streamIn = socket.getInputStream();
PrintWriter writer = new PrintWriter(streamOut,true);
InputStreamReader streamReaderIn = new InputStreamReader(streamIn);
BufferedReader reader = new BufferedReader(streamReaderIn);)
{
aufgabe = "add 40 2";
writer.println(aufgabe);
ergebnis = reader.readLine();
talkToGui();
}
catch(IOException ex)
{
fenster.setTextException(ex);
}
}
public void talkToGui()
{
fenster.setText(aufgabe, ergebnis);
}
public static void main(String[] args)
{
Gui gui = new Gui();
gui.fenster.setVisible(true);
}
}
Projekt Server
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
private int port = 4XXX;
public void abgehts(){
try(
ServerSocket serversocket = new ServerSocket(port);
Socket socket = serversocket.accept();
InputStream streamIn = socket.getInputStream();
InputStreamReader streamReaderIn = new InputStreamReader(streamIn);
BufferedReader reader = new BufferedReader(streamReaderIn);
OutputStream streamOut = socket.getOutputStream();
PrintWriter writer = new PrintWriter(streamOut, true);
)
{
String anfrage = reader.readLine();
String[] tokens = anfrage.split(" ");
int x = Integer.parseInt(tokens[1]);
int y = Integer.parseInt(tokens[2]);
int ergebnis = 0;
if(tokens[0].equalsIgnoreCase("add"))
{
ergebnis = x + y;
}else if
(tokens[0].equals("diff"))
{
ergebnis = x - y;
}
String antwort = String.valueOf(ergebnis);
writer.println(antwort);
socket.close();
serversocket.close();
}
catch(IOException ex){
System.out.println(ex);
}
}
public static void main(String[] args) {
Gui gui = new Gui();
gui.fenster.setVisible(true);
}
}
Gruß