Hallo,
befasse mich zurzeit zum ersten Mal mit Netzwerkprogrammierung, habe mir jetzt ein kleines Projekt überlegt, scheitere gerade aber direkt zu Anfang am Übertragen der Daten.
Habe Serverseitig folgendes gemacht:
Clientseitig siehts dann so aus:
sendData() wird auf Buttondruck ausgeführt funktioniert auch laut Konsole alles soweit richtig
Die Konsolenausgabe des Servers sieht folgendermaßen aus:
Neuer Durchlauf
Client: null
Warte auf Client
Client angenommen
Neuer Durchlauf
Client: Socket[addr=/192.168.178.23,port=53766,localport=3724]
Checke Input Data
Öffne try
Öffne InputstreamReader
Öffne BufferedReader
Gebe br.readLine zurück
Egal wie oft ich die Daten an den Server schicke es passiert rein garnichts, ob ich nun den Clienten auf dem gleichen PC habe oder auf einem anderen macht keinen Unterschied...
Hat vllt. jemand eine Antwort warum nichts beim Server ankommt?
Freue mich über Antworten.
MfG KingEldarion
befasse mich zurzeit zum ersten Mal mit Netzwerkprogrammierung, habe mir jetzt ein kleines Projekt überlegt, scheitere gerade aber direkt zu Anfang am Übertragen der Daten.
Habe Serverseitig folgendes gemacht:
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;
public class Manager{
public static ServerSocket serverSocket;
public static Socket client = null;
public static MainFrame mf;
public static Update update;
public static Thread updateThread;
public static void init(){
try {
mf = new MainFrame();
serverSocket = new ServerSocket(3724);
update = new Update();
updateThread = new Thread(update);
updateThread.start();
}
catch (IOException e) {
System.out.println(e);
}
}
public static String getData(){
System.out.println("Öffne try");
try {
System.out.println("Öffne InputstreamReader");
InputStreamReader isr = new InputStreamReader(client.getInputStream());
System.out.println("Öffne BufferedReader");
BufferedReader br = new BufferedReader(isr);
System.out.println("Gebe br.readLine zurück");
String line = br.readLine();
System.out.println("Input: " + line);
return line;
}
catch (IOException e) {
System.out.println("ERROR: " + e);
e.printStackTrace();
}
catch(Exception e){
System.out.println("ERROR: " + e);
}
System.out.println("Gebe nichts zurück");
return "";
}
}
import java.io.IOException;
public class Update implements Runnable{
@Override
public void run() {
try {
while(true){
System.out.println("Neuer Durchlauf");
System.out.println("Client: " + Manager.client);
if(Manager.client != null){
System.out.println("Checke Input Data");
System.out.println("Clientdata: " + Manager.getData());
System.out.println("Clientdata checked");
}
else{
System.out.println("Warte auf Client");
Manager.client = Manager.serverSocket.accept();
System.out.println("Client angenommen");
}
Thread.sleep(15);
}
}
catch (InterruptedException e) {
System.out.println("ERROR: " + e);
e.printStackTrace();
}
catch (IOException e) {
System.out.println("ERROR: " + e);
e.printStackTrace();
}
catch(Exception e){
System.out.println("ERROR: " + e);
}
}
}
Clientseitig siehts dann so aus:
Code:
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class Manager{
public static MainFrame mf;
public static Socket socket;
public static void init(){
mf = new MainFrame();
try {
socket = new Socket("FLORIAN-S-PC", 3724);
}
catch (IOException e) {
System.out.println(e);
}
}
public static void sendData(Order order){
try {
System.out.println("Socket " + socket + " " + socket.isClosed());
PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.print("Hello World");
writer.flush();
System.out.println("Send");
}
catch (IOException e) {
e.printStackTrace();
}
}
}
sendData() wird auf Buttondruck ausgeführt funktioniert auch laut Konsole alles soweit richtig
Die Konsolenausgabe des Servers sieht folgendermaßen aus:
Neuer Durchlauf
Client: null
Warte auf Client
Client angenommen
Neuer Durchlauf
Client: Socket[addr=/192.168.178.23,port=53766,localport=3724]
Checke Input Data
Öffne try
Öffne InputstreamReader
Öffne BufferedReader
Gebe br.readLine zurück
Egal wie oft ich die Daten an den Server schicke es passiert rein garnichts, ob ich nun den Clienten auf dem gleichen PC habe oder auf einem anderen macht keinen Unterschied...
Hat vllt. jemand eine Antwort warum nichts beim Server ankommt?
Freue mich über Antworten.
MfG KingEldarion