Server und Client Kommunikation: Pakete kommen beim Client nicht an

  • 7 Antworten
  • Letztes Antwortdatum
G

gio01

Neues Mitglied
0
Hallo,

kann mir bitte jemand helfen.Und zwar versuche ich im LAN folgendes:

Kurz zur Infrastruktur:
Rechner A:
Ist der Server. Er legt zwei Ports an. Den ersten (3334) für den Rechner B und einen zweiten für das Tablet (3333). Der Server leitet nur die Pakete hin und her.

Rechner B: Ist ein Client. Er schickt seine Daten an dem Server

Tablet : Ist ein Client. Er schickt seine Daten an dem Server.

Wenn das Tablet nun eine Nachricht an Rechner B schickt, dann klappt das. Aber andersherum nicht. Die Daten kommen beim Tablet erst an wenn ich den Server herunterfahre.

Kann mir bitte jemand helfen? :sad:

Gruß
gio01
 
Ne, ohne Code oder Fehlermeldungen nicht!
 
  • Danke
Reaktionen: kleinerkathe
Guck mal in Zeile 56 der Klasse ServerClientConnect. Da liegt der Fehler.... :rolleyes2::rolleyes2:

Kann mich meinen Vorredner nur anschließen. Ohne Code geht hier nix. Aber frag mal bei der NSA nach. Die kennen deinen Code sicher schon :scared:
 
  • Danke
Reaktionen: TheDarkRose
Ich würd jetzt mal vermuten, dass meine Vorredner Recht haben.
Wie sollen wir einen Fehler finden, ohne Code wenn du ihn nicht mal mit Code findest ???
Spontan würd ich sagen das du ein Fehler beim senden an den Tablet Port hast. :lol:
 
Nein ich glaube an dem Code kann es nicht liegen. Ich hätte vielleicht erwähnen müssen, dass wenn ich einen Rechner statt Tablet verwende dann klappt das wunderbar. Also sobald ich den Client Code in Android einfüge dann kommen die Pakete nicht an. Ich dachte man muss bei Android was beachten.
Ich werde heute Abend den Client Code hochladen. Solange werde mich um die Zeile 56 kümmern :flapper:
 
Du hast also Java-Code für einen Rechner 1 zu 1 in Android kopiert? Bei Netzwerkoperationen würde ich behaupten, dass das nicht problemlos funktioniert.
 
Hier nochmal ein Code-Ausschnitt. Die Objekte werden mit JSON gestreamt.
Kann es sein, dass ich die JSON Implementierung von Android verwenden muss? Zurzeit verwende ich das normale von Java

@Laut Android werden die normalen Socktes von Java unterstüzt?

Code:
public class MainActivity extends Activity{
   private NetworkManager n;
   protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        n=new NetworkManager(); 
        n.start();
   }
}

public class NetworkManager extends Thread{
    public static final int PORT_TABLET = 3333;
  
    //Example id
    private long id =1; 
    private MyConnection myConnection;
    
    public NetworkManager (){
        myConnection = new MyConnection();
    }
    
    @Override
    public void run() {
        myConnection.connect("192.168.2.174", PORT_TABLET);
        myConnection.getClient().getConnection().setId(id);
        myConnection.getClient().send(new Event_ConnectWithID(id));
    }
    
    class MyConnection extends ConnectionHandler{
        @Override
        public void receive(ConnectionEvent e) {
            System.out.println("receive");            
        }
    }


}
Als Anhang noch mal die Wireshark-Ausgabe
 

Anhänge

  • wireshark_test2.zip
    1,6 KB · Aufrufe: 78
Zuletzt bearbeitet:
So Problem selbst gelöst:
Hab JSON entfernt und die Objekt mit Serializable implementiert. Funktioniert wunderbar. :smile:

Ich werde dann die JSON-Sourcen von Google runterladen und nochmal ausprobieren
 
Zurück
Oben Unten