Socketprogrammierung Verbindung C++=>Java

Status
Nicht offen für weitere Antworten.

DrSeus

Mitglied
Hi liebe Javaniestenfamilie xD
Hab wieder ein Problem und zwar:
Ich hab ein C++-Programm das is der Client und der Soll Daten an meinen Server schicken

Gesendet werden die Daten iwie so:

Code:
s=socket(AF_INET,SOCK_STREAM,0);# 
memset(&addr,0,sizeof(SOCKADDR_IN));
addr.sin_family=AF_INET;
addr.sin_port=htons(12345);
DNSLookup("127.0.0.1",&addr);
connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR));
send(s,UltraStringBuffer, strlen(UltraStringBuffer),0);
closesocket(s);

Und wie kann ich die jetzt über einen Socket Empfangen?
Möchte noch hinzufügen das ich weis wie man eine Socketverbindung grundsätzlich aufbaut und eine billige int variable verschickt.
Würd mich über Hilfe freun... da ich mich iwie mit C++ bis jetzt nicht beschäftigt hab weis ich net wie ich damit umgehen kann...
Achja der Server is JAVA xD
lg DrSeus
 
Zuletzt bearbeitet:

sparrow

Top Contributor
Fragst du gerade wie du in C++ Daten von einem Java-Server verarbeiten sollst?
Vielleicht solltest du das lieber in einem C++ Forum fragen?
 

DrSeus

Mitglied
Neeee es gibt ja bei Java verschiedene Socketempfangsmöglichkeiten z.B.:InputStream DataInputStream ObjectInputStream
und ich weis jetzt net wie ich das was reinkommt vom Clienten (C++) empfangen soll.. bei mir treten da fehler auf bei jeder möglichkeit die ich jetzt versucht hab
 

sparrow

Top Contributor
Welche Fehler treten denn auf? Das kann hier leider niemand hellsehen.

Mit einem InputStream sollte das grundsätzlich immer gehen wenn du Byte-für-Byte empfängst.
 

DrSeus

Mitglied
Das is mr schon klar ;-) Wollt mir aber de Arbeit net antun noch mal alles auszuprobiern wenn einer schon ne Antwort bereit hätte

Also
11.05.2009 20:59:03 cxnazgul.MainJFrame TimerTask_Network
SCHWERWIEGEND: null
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)

Das kahm öfter xD einmal Kahm auch das Der Header von dem Stream unbekannt is etc


Und wie empfang ich sowas Byte und Byte und wandel das dann in String um zB... find dazu nix -.- entweder ich bin dumm oder ich soch nach den flaschen begriffen sry
 
Zuletzt bearbeitet:

tfa

Top Contributor
Am besten vergisst du C++ und machst Client und Server in Java.
Plattformübergreifende Kommunikation ist nicht so einfach. Eine Möglichkeit wären z.B. Webservices, was allerdings mit einigem Overhead verbunden ist.
 

DrSeus

Mitglied
Kurz: Ich kann nix vergessen... Ehrlichgesagt is das anders net möglich weil die clienten klein versteckt und eventabfragent laufen :oops: und er er wird net von mir entwickelt... (Und das is leider alles net mit java möglich) aber ich dachte mal FTW es kann net so schwer sein ein paar bytes einzusammeln de an der netzwerkkarte reinflattern weil iwie is das ziemlich immer das gleiche bei sockets oder?
 

tfa

Top Contributor
Ich hab's vor so ca. 12 Jahren mal mit Streams versucht und nicht hinbekommen. Das heißt natürlich nicht, dass es nicht möglich ist.

Ehrlichgesagt is das anders net möglich weil die clienten klein versteckt und eventabfragent laufen :oops:
Den Satz hab ich nicht verstanden...

Wie gesagt, versucht es mal mit Webservices über SOAP. Das funktioniert mit allen möglichen Sprachen.
 

DrSeus

Mitglied
Es ist ein Projekt von ein paar Leuten darunte rich die Arbeitsteilung haben xD Ich bin für Serversoftware zuständig.. meine aufgabe: Daten empfangen (Socket) -Verarbeiten Eintragen Auswerten WEbseiten erstellen zum einfachen auslesen etc.. scheitern tuts am fucking Stream empfangen -.- dabei sagten so viele das sei so leicht
 

DrSeus

Mitglied
So... Bruder sagt: Was bei Socket verschickt :bae: (normale Byte struktur denk ich mal xD) wenn mans gscheid macht bei C++ und meinte ich soll das mal mit Netcat "Debuggen" .. Wird also mein nächster schritt ;-) Falls ich ne Lösung find Posts ichs mal vill brauchts später wer^^
 
Zuletzt bearbeitet:

sparrow

Top Contributor
Ähm... also wenn ich von Java aus einen Webserver "anrufe" und mir mal eine Webseite ausliefern lasse stehen die Chancen ziemlich gut dafür, dass auf der anderen Seite ein Apache Webserver läuft. Und der ist nicht in Java geschrieben.

Also Kommunikation zwischen Applikationen, auch wenn nicht beide Seiten Java sind, sollte kein Problem sein. Dafür sind die Netzwerkprotokolle ja da.

Schwierig wird es nur wenn Objekte verschickt werden (also serialisierte Objekte in Java zB), das sollte man tunlichst unterlassen. Aber solange das Protokoll gut dokumentiert ist gibt es keine Probleme. Wenn man dann auch noch den direkten Draht zu den Entwicklern der anderen Seite hat steht dem ganzen gar nichts mehr im Wege.

Vielleicht solltest du einen minimalen Code schreiben der funktioniert.
Dann zeigst du was da am Socket ankommen müsste.


PS: Höre besser nicht auf deinen Bruder
 
Zuletzt bearbeitet:

DrSeus

Mitglied
Mein Bruder hat grad Informatikstudium abgeschlossen bzw Diplomarbeit schreiben und hat fucking 100mal mehr aufn kasten als ich x) Das mit dem Text von mir wurde umschrieben und damit wollt ich daraufhinweisen das wenn man bei C++ Plattformunabhängig abschickt dann kann man das ohne schwierigkeiten mit einer anderen Sprache lesen (SO WIE TEXT HALT DESWAGEN ICH TEXT GESCHREIBEN wenn ich das runterschreibe was er sagt versteh ich selber nix . also sagt nix gegen mein bro -.-)
Das Problem: Ich hab null tau von C++ der Client entwickler keine Ahnung von Java xD werd wohl oder über mich da reinlesen müssen -.-
 
Zuletzt bearbeitet:

Stefan S.

Aktives Mitglied
Neeee es gibt ja bei Java verschiedene Socketempfangsmöglichkeiten z.B.:InputStream DataInputStream ObjectInputStream
und ich weis jetzt net wie ich das was reinkommt vom Clienten (C++) empfangen soll.. bei mir treten da fehler auf bei jeder möglichkeit die ich jetzt versucht hab

1. Das ist kein C++ sondern puristisches C in Kombination mit der WinAPI. Also direkt am OS.

2. Die Java Streams leiten sich alle von Input- und Outpustream ab (Reader, Writer bei Unicode). In Java gibt es eine regelrechte Streamhysterie. Ob das geil ist sei mal dahingestellt.

Ein TCP Socket ist immer an einen Input- bzw Outputstream gebunden und liefert diesen auch per getInputStream() zurück.


Tatsache ist das alles, was übers Netzwerk geht auf OSI beruht.

Nutzt du TCP, ist alles byteorientiert. Deine Aufgabe ist dann das Framing, also die Daten zu lesen, TCP kennt nämlich keine Nachrichtengrenzen, und richtig zu interpretieren, was von dem Format bzw. der Kodierung abhängig ist.

Dem Server ist es vollkommen wurscht ob er die Daten von einem Java, C, C++ oder Python-Clienten gesendet bekommt.
 
Zuletzt bearbeitet:

DrSeus

Mitglied
Ja so hab ich das gmeint das des egal is von was das kommt nur hab ich keine Ahnung wie ich des ohne Fehler zammgrieg und wie i des auslesen kann... aber danke
 

ARadauer

Top Contributor
Plattformübergreifende Kommunikation ist nicht so einfach
wir haben das mal in der Schule gemacht... 2 Stunde Java unterricht (wir konnten schon c)ging sehr sehr einfach.
Wir hatten das Semester vorher C++ und schrieben einen kleinen Chat und im nächsten Semester haben wir einfach einen kleinen java client geschrieben...


also java<->C Kommunikation über Socket sollte kein Problem sein....

also wer ist jetzt der Server? Java


versuch sowas mal
Code:
ServerSocket server = new ServerSocket(9898);
      Socket client = server.accept();
      BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
      PrintWriter out = new PrintWriter(client.getOutputStream(), true);
      
      String line = in.readLine();
      System.out.println("empfangen: "+line);
      
      out.println("danke");
      
      client.close();
bei bedarf muss man halt einzelne bytes lesen und schreiben, bzw auf einer seite ein bisschen konvertieren.. aber ein paar zahlen zu übertragen sollte klappen...

zeig mal deinen gesamten java und c code...
 

DrSeus

Mitglied
Ich hab grad rausgefunden wie man aus nem Stream liest =D Jetzt wird das glaub ich kein Großes Problem mehr sein ;-) Danke für die Links/Lösungsvorschläge
lg DrSeus

PS: Kann man ein Thema als gelöst makiern? oO
 

DarkGuardian

Mitglied
Hallo

Es sollte klar sein, was genau über das Netzwerk geschickt wird. Denn in der Java-SW wird alles bytesweise empfangen (wie auch schon gesagt).

Daher muss bis aufs Byte genau klar sein, was da empfangen wird. Zudem sollte die Byteorder definiert sein (Big Endian oder Little Endian). Mit den Klassen ByteBuffer und ByteOrder aus NIO kann man das sehr komfortabel abrufen. Und dann ist ein Datenaustausch zwischen C++- und Javaprogrammen kein großes Problem.

Sollen aber Objekte gesendet werden, wird es schon komplexer. Da würde ich auf eine erprobte Techologie zurückgreifen (SOAP, Corba o.Ä.).
 

DarkGuardian

Mitglied
Natürlich wird immer alles in Bytes empfangen. Da habe ich mich wohl missverständlich ausgedrückt. Ich wollte eigentlich nur klar machen, dass die Daten byteweise ankommen. Und wenn man weiß, wie diese aufgebaut sind, ist es egal, welche Programmiersprache man nutzt und auf welchem Zielsystem das Ganze läuft.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Java - Socketprogrammierung Netzwerkprogrammierung 10
Q Frage zur Socketprogrammierung Netzwerkprogrammierung 12
N "Jungfernflug" der Socketprogrammierung für ein Mühlespiel Netzwerkprogrammierung 8
N Threads und Socketprogrammierung Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Verbindung zu Geräten mit gleicher IP aber in unterschiedlichen VLans aufbauen Netzwerkprogrammierung 2
M Socket Socket lehnt Verbindung ab Netzwerkprogrammierung 3
IAmFloppy Socket Nachstellen der Verbindung Netzwerkprogrammierung 6
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
S Bluetooth Verbindung zwischen Android app und Raspberry Pi 3 Netzwerkprogrammierung 1
S Peer2Peer Verbindung trotz NAT Netzwerkprogrammierung 2
T VPN-Verbindung über Java Netzwerkprogrammierung 4
Aruetiise Socket Verbindung Überprüfen Netzwerkprogrammierung 18
F Socket Verbindung mit Verschlüsselung und Authentifierzung Netzwerkprogrammierung 1
F Probleme mit Connection Reset bei Telnet Verbindung Netzwerkprogrammierung 1
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
P Socket Socket-Verbindung Input sehr langsam Netzwerkprogrammierung 1
S FTP Verbindung zu einem BS2000 Großrechner mit Commons Net Netzwerkprogrammierung 0
F Einfache Socket Verbindung Netzwerkprogrammierung 2
F Verbindung zwischen Server und handy Netzwerkprogrammierung 1
M TCP Verbindung Byte-weise lesen? Netzwerkprogrammierung 5
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
I Swing hängt sich auf bei Verbindung zum Server Netzwerkprogrammierung 3
P RMI Hohe CPU Last RMI Verbindung Netzwerkprogrammierung 4
J Pc - Handy Verbindung? Netzwerkprogrammierung 3
M Socket 2x Proxy multithread-server mit Cross Verbindung Netzwerkprogrammierung 0
T Verbindung zum Server fehlgeschlagen Netzwerkprogrammierung 7
D Einfache Verbindung zu Linux Server und Datei auslesen Netzwerkprogrammierung 13
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
R Dauerhaft offene Socket-Verbindung? Netzwerkprogrammierung 3
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
S Socket Socket Verbindung wiederherstellen Netzwerkprogrammierung 16
T Socket Bidirektionale Verbindung mit Sockets Netzwerkprogrammierung 8
N (TCP) Verbindung ohne Portforwarding Netzwerkprogrammierung 12
N Lan-Verbindung erstellen Netzwerkprogrammierung 2
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
E Verbindung zu SQL-Datenbank auf einem Server Netzwerkprogrammierung 13
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V NullPointerException bei Verbindung zu RabbitMQ-Server Netzwerkprogrammierung 4
B FTP commons net verschlüsselte verbindung Netzwerkprogrammierung 11
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
X Über eine Socket-Verbindung Arrays übergeben Netzwerkprogrammierung 5
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
A Socket Socket Verbindung unterbrochen --> keine Exception Netzwerkprogrammierung 7
S SVNKit - Verbindung zum Repository trennen? Netzwerkprogrammierung 2
P Socket neuer Client - neue(r) Socket/Verbindung geöffnet? Netzwerkprogrammierung 6
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
X SSH Verbindung zu Remote Datenbank Netzwerkprogrammierung 2
S TCP Verbindung zu Beamer Netzwerkprogrammierung 8
Y server client socket verbindung übers internet aufbauen Netzwerkprogrammierung 8
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
D Verbindung zw. zwei Rechnern funzt nicht Netzwerkprogrammierung 5
F Socket Socket Verbindung Netzwerkprogrammierung 10
E Server schließt einfach verbindung? Netzwerkprogrammierung 6
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
X Socket Handy/PC Verbindung unterscheiden Netzwerkprogrammierung 18
O Telnet verbindung Netzwerkprogrammierung 4
Dit_ UDP Verbindung durch Proxy Netzwerkprogrammierung 4
H Socket Client server,verbindung läst sich nicht abbauen&code optimierung Netzwerkprogrammierung 3
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
M HTTP HTTPS-Verbindung mittels Java und Javascript Netzwerkprogrammierung 2
N Verbindung zu Fritzbox Socket/Telnet ??? Netzwerkprogrammierung 5
multiholle RMI Verbindung Linux <-> Windows Netzwerkprogrammierung 4
S netzwerkprotokoll auf basis einer tcp verbindung erstellen Netzwerkprogrammierung 9
S SSH Verbindung mit j2ssh Netzwerkprogrammierung 3
H Socket Mit Applet Verbindung zu eigener Website aufbauen Netzwerkprogrammierung 4
H Socket Socket verbindung mit einem TeamSpeak2 Server Netzwerkprogrammierung 5
H TCP verbindung hinter NAT Netzwerkprogrammierung 28
G TCP SSL Verbindung Netzwerkprogrammierung 3
P Java / My-Sql Verbindung herstellen Netzwerkprogrammierung 6
W Socket Shellscript über ssh Verbindung aufrufen Netzwerkprogrammierung 14
N Socket Verbindung wird immer verweigert Netzwerkprogrammierung 5
Dit_ UDP-Verbindung, DatagramPakete Netzwerkprogrammierung 3
S Socket verbindung trennen Netzwerkprogrammierung 3
D Verbindung zu einem Server - POST Netzwerkprogrammierung 2
musiKk SSL-Verbindung mit Client-Zertifikat (Private Key) scheitert Netzwerkprogrammierung 13
B Probleme mit FTP verbindung Netzwerkprogrammierung 22
T Mac Adresse über Socket Verbindung abfragen? Netzwerkprogrammierung 9
L SSL Verbindung aber Server wird erst im Programm festgelegt Netzwerkprogrammierung 4
L Https Verbindung wird aus jar heraus nicht aufgebaut Netzwerkprogrammierung 12
M Verbindung über Proxy// Problem mit Outputstream bei URLConn Netzwerkprogrammierung 5
O TCP Socket-Verbindung überprüfen Netzwerkprogrammierung 4
F Peer to Peer Verbindung zwischen mehreren Clients? Netzwerkprogrammierung 8
F applet verbindung zum server Netzwerkprogrammierung 6
T Verbindung über das Internet Netzwerkprogrammierung 2
G Verbindung zwischen PC und Handy Netzwerkprogrammierung 10
B Bibliothek, um Eckdaten zur Internet-Verbindung rauszufinden Netzwerkprogrammierung 2
C Verbindung zwischen 2 Computern herstellen Netzwerkprogrammierung 12
G USB-Verbindung herstellen Netzwerkprogrammierung 3
O SSH-Verbindung (trilead-ssh2-build212) Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben