Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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 ;)

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

Boa. Da soll mal einer drauf kommen. Wahnsinn ...

  • 5 Wochen später...

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

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.

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.