Metaner Geschrieben 1. Oktober 2007 Geschrieben 1. Oktober 2007 Hallo, ich habe das Problem, dass an einen Java-Socket gesendete Nachrichten nach 4379 Zeichen abgeschnitten werden. Bei der Kommunikation wird von Java (Eclipse 3.2, JDK 6.x) ein Client-Socket geöffnet und mit einem Server-Socket (der von einer Smalltalk-Anwendung geöffnet wurde) verbunden. Anschließend wird eine Nachricht gesendet und die Antwort in Java entgegengenommen. Im Augenblick befinden sich beide Anwendungen (Smalltalk/Java) auf einem Rechner. Für die Kommunikation wird die lokale IP-Adresse und der Port 8081 verwendet. Dieses Kommunikationssystem läuft auf meinem Rechner prima (Windows XP, SP2) und kommt auch mit größeren Nachrichten (getestet mit bis zu 80KB) gut zurecht. Ich habe noch ein zweites System, dass ebenfalls identisch eingerichtet ist (Windows XP, SP2, ...) und auch im gleichen Netzwerk hängt. Werden auf diesem System jedoch Nachrichten zwischen der Smalltalk-Anwendung und Java (Eclipse) ausgetauscht (ebenfalls lokal), so kommen in Java max. 4379 Bytes an obwohl die Nachricht von der Smalltalk-Anwendung nachweislich vollständig abgeschickt wurde. Was also auf dem einen System prima funktioniert, klappt auf diesem garnicht. Da ich mit Java noch nicht viel Übung habe, bräuchte ich von Euch einen Rat, wie ich das Problem nun analysieren kann. Gibt es einen TCP/IP Sniffer o. ä. den ich in Eclipse einbinden kann, um ggf. über die Nachrichtenpakete mehr Informationen zu bekommen? Oder kennt vielleicht jemand von Euch das Problem und hat eine Lösung für mich? Über eine Rückmeldung würde ich mich sehr freuen. Danke und lieben Gruß Jan Zitieren
geloescht_Newlukai Geschrieben 3. Oktober 2007 Geschrieben 3. Oktober 2007 Probier's doch mal mit Wireshark, ehemals ethereal. Damit kannst Du zumindest mal nachschauen, ob im Netz alles sauber transportiert wird. Nebenbei bemerkt: Das Tool widerspricht natürlich der aktuellen Gesetzeslage, da es ja Netzwerkaktivitäten aufzeichnet und somit zum Hacken genutzt werden könnte Zitieren
Metaner Geschrieben 9. Oktober 2007 Autor Geschrieben 9. Oktober 2007 Hallo und Danke für den Tipp, inzwischen haben wir festgestellt, dass das Problem nur auf diesen einen Rechner auftritt. Zwei andere Testsysteme konnten den Fehler nicht reproduzieren. Nach einigen Recherchen hat sich herausgestellt, dass es vor x-Jahren ein Problem in Smalltalk gab (Nachrichten wurden nach 4380 Byte abgeschnitten) woraufhin der Hersteller der Entwicklungsumgebung uns aufforderte zur Problembehebung an der Windowsregistry Änderungen vorzunehmen. Vermutlich hat dies auf diesem System (die Windowsinstallation ist schon 5 Jahre alt) dazu geführt, dass jetzt in Java die Nachrichten nicht mehr vollständig ankommen. Wir werden den Rechner einfach neu aufsetzen und denken, dass sich das Problem damit erledigt hat. Nochmals Danke und Grüße, Jan Zitieren
geloescht_Newlukai Geschrieben 9. Oktober 2007 Geschrieben 9. Oktober 2007 Boa. Da soll mal einer drauf kommen. Wahnsinn ... Zitieren
Metaner Geschrieben 8. November 2007 Autor Geschrieben 8. November 2007 Leider besteht das Problem doch noch immer. An der Windows-Registry hats nicht gelegen. Auch nach Neuinstallation tritt das Problem nach wie vor auf. Da ich das Problem weiter analysiert und neue Erkenntnisse gewinnen konnte,habe ich eine neue Meldung zu diesem Problem in Netzwerk-Forum eröffnet. Link: http://forum.fachinformatiker.de/networking-technologies/110331-unvollstaendige-tcp-nachrichten-max-4380-byte.html Zitieren
frquadrat Geschrieben 8. November 2007 Geschrieben 8. November 2007 Kannst Du ggf. Code-Fragmente posten? Also nur jene, die das Lesen vom SocketInputStream bzw. das Schreiben auf den SocketOutputStream übernehmen, wären vielleicht sinnvoll. Zitieren
Metaner Geschrieben 8. November 2007 Autor Geschrieben 8. November 2007 Ein Code-Fragment hatte ich im neuen Posting eingefügt. Das Problem habe ich inzwischen beheben können (siehe neues Posting). Somit kann dieses Thema geschlossen werden. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.