TCP-Socket: Python3-Client und Java-Server
Verfasst: Dienstag 8. April 2014, 20:31
Hallo zusammen,
um aufwendig und liebevoll in Java programmierte Grafiken nutzen zu können, habe ich ein Java-Swing-Programm um eine Socket-Server-Option erweitert und möchte es nun von meinem neuen Python-Programm ansteuern, was auch jetzt endlich klappt.
Das funktioniert aber erst, seit dem ich die Strings, die ich an den Java-Server schicke und von dort empfange encodiere bzw. wieder decodiere. Anfangs hatte ich mehrere Eigangspuffer im Java-Server ausprobiert, weil dieser nach beim Empfang der Python-Strings grundsatzlich abgestürzt ist.
Es lag aber am Python-Client und daran, dass ich bei meinen Versuchen die Anleitungen von Python2 (benutze aber Python 3.4) befolgt hatte, ohne zu berücksichtigen, dass sich die Strings von Python 2 und 3 gravierend von einander unterscheiden.
Was ich allerdings nicht verstehe ist, warum man die Strings, die man über einem Python3-Socket-Client austauschen will, erst encodieren bzw. decodieren muss, wohingegen man es in Java (und in anderen Sprachen ?) nicht tun muss. Wieso erledigt das nicht schon das Socket-Package ? Nimmt Python3, was die binäre Stringdarstellung angeht, eine Sonderstellung ein ?
Grüße
m-o
um aufwendig und liebevoll in Java programmierte Grafiken nutzen zu können, habe ich ein Java-Swing-Programm um eine Socket-Server-Option erweitert und möchte es nun von meinem neuen Python-Programm ansteuern, was auch jetzt endlich klappt.
Das funktioniert aber erst, seit dem ich die Strings, die ich an den Java-Server schicke und von dort empfange encodiere bzw. wieder decodiere. Anfangs hatte ich mehrere Eigangspuffer im Java-Server ausprobiert, weil dieser nach beim Empfang der Python-Strings grundsatzlich abgestürzt ist.
Es lag aber am Python-Client und daran, dass ich bei meinen Versuchen die Anleitungen von Python2 (benutze aber Python 3.4) befolgt hatte, ohne zu berücksichtigen, dass sich die Strings von Python 2 und 3 gravierend von einander unterscheiden.
Was ich allerdings nicht verstehe ist, warum man die Strings, die man über einem Python3-Socket-Client austauschen will, erst encodieren bzw. decodieren muss, wohingegen man es in Java (und in anderen Sprachen ?) nicht tun muss. Wieso erledigt das nicht schon das Socket-Package ? Nimmt Python3, was die binäre Stringdarstellung angeht, eine Sonderstellung ein ?
Grüße
m-o