ubuntuusers.de

QT mit node.js

Status: Ungelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

TheIntruder

Avatar von TheIntruder

Anmeldungsdatum:
26. Juni 2011

Beiträge: 205

Folgende Uebung muss ich loesen: Ich soll einen Server bauen, der mit einem Client kommuniziert.

  1. Darf ich den Server mit node.js bauen?

  2. Der Client wurde bereits mit QT gebaut.

  3. Wie soll die Kommunikation stattfinden?

Kennt jemand ein ganz einfache Programmierbeispiel? Sagen wir etwas, bei der node.js einfach nur "Hello World" an das QT App sendet?

Moderiert von rklm:

Aufzählung formatiert. Bitte die Syntaxhinweise beachten.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13174

TheIntruder schrieb:

Folgende Uebung muss ich loesen: Ich soll einen Server bauen, der mit einem Client kommuniziert.

  1. Darf ich den Server mit node.js bauen?

Das musst Du wohl denjenigen fragen, der die Aufgabe gestellt hat.

2. Der Client wurde bereits mit QT gebaut.
3. Wie soll die Kommunikation stattfinden?

Wenn der Client schon fertig ist, dann ist das Protokoll schon festgelegt. Damit erübrigt sich die Frage nach dem Protokoll.

Ich wundere mich etwas über die Fragen: wenn Du so eine Aufgabe bekommen hast, dann müsstest Du doch auch die entsprechende Ausbildung erhalten haben, um sie lösen zu können. Ich vermute mal, dass es auch zur Aufgabenstellung gehört, diese Fragen zu beantworten. Siehe auch die Bemerkung zu "Hausaufgaben" auf ubuntuusers/Moderatoren/Forenregeln (Abschnitt „Richtig_Fragen“).

Ciao

robert

TheIntruder

(Themenstarter)
Avatar von TheIntruder

Anmeldungsdatum:
26. Juni 2011

Beiträge: 205

rklm schrieb:

TheIntruder schrieb:

Folgende Uebung muss ich loesen: Ich soll einen Server bauen, der mit einem Client kommuniziert.

  1. Darf ich den Server mit node.js bauen?

Das musst Du wohl denjenigen fragen, der die Aufgabe gestellt hat.

2. Der Client wurde bereits mit QT gebaut.
3. Wie soll die Kommunikation stattfinden?

Wenn der Client schon fertig ist, dann ist das Protokoll schon festgelegt. Damit erübrigt sich die Frage nach dem Protokoll.

Ich wundere mich etwas über die Fragen: wenn Du so eine Aufgabe bekommen hast, dann müsstest Du doch auch die entsprechende Ausbildung erhalten haben, um sie lösen zu können. Ich vermute mal, dass es auch zur Aufgabenstellung gehört, diese Fragen zu beantworten. Siehe auch die Bemerkung zu "Hausaufgaben" auf ubuntuusers/Moderatoren/Forenregeln (Abschnitt „Richtig_Fragen“).

Ciao

robert

Natuerlich, du hast Recht und bekommst eine Entschuldigung von mir fuer meine lose Wortwahl. Ich habe keine formale Ausbildung, ich bringe mir gerade die Webprogrammierung bei. Ein Freund sagte mir, ein nettes Programmierbeispiel sei, dass ich eine Art Billigskype herstelle. Ich habe schon gelesen, dass node.js mit mongoDb funktioniert, ich habe sehr schoenen Webcode mit node.js gesehen, daher will ich bei node.js bleiben, wollte mich aber noch bei den hier anwesenden vergewissern, dass das ohne Probleme geht. Es gibt schoene Tutorials in denen die Kommunikation zwischen Javascript bzw. mongoDB und node.js beschrieben wird, aber nicht zwischen C++ und node.js.

Ich habe versucht mich im Empathy quellcode zurecht zu finden, ist aber ein Riesen Quarkmeier.

  1. Der Client besteht bis jetzt nur aus einer in QT und C++ gebauten Maske, die keinerlei innere Funktionen hat.

  2. Das Protokoll und der gesamte Code muss von meiner Seite noch hergestellt werden.

  3. Der node.js Code existiert nicht,

  4. Die Datenbank soll spaeter mit mongoDB laufen.

  5. Wenn es moeglich ist, will ich auf PHP, Java und aehnliches vollstaendig verzichten.

Ich stehe noch ganz am Anfang und bin noch sehr unsicher. Danke

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13174

TheIntruder schrieb:

Natuerlich, du hast Recht und bekommst eine Entschuldigung von mir fuer meine lose Wortwahl.

Danke Dir für die Klärung.

Ich habe keine formale Ausbildung, ich bringe mir gerade die Webprogrammierung bei.

Achso.

Ein Freund sagte mir, ein nettes Programmierbeispiel sei, dass ich eine Art Billigskype herstelle. Ich habe schon gelesen, dass node.js mit mongoDb funktioniert, ich habe sehr schoenen Webcode mit node.js gesehen, daher will ich bei node.js bleiben, wollte mich aber noch bei den hier anwesenden vergewissern, dass das ohne Probleme geht.

Probleme gibt es immer, aber dafür sind wir ja da. Und außerdem macht es ohne Tüftelei doch nur halb so viel Spaß. ☺

Es gibt schoene Tutorials in denen die Kommunikation zwischen Javascript bzw. mongoDB und node.js beschrieben wird, aber nicht zwischen C++ und node.js.

  1. Der Client besteht bis jetzt nur aus einer in QT und C++ gebauten Maske, die keinerlei innere Funktionen hat.

  2. Das Protokoll und der gesamte Code muss von meiner Seite noch hergestellt werden.

  3. Der node.js Code existiert nicht,

  4. Die Datenbank soll spaeter mit mongoDB laufen.

  5. Wenn es moeglich ist, will ich auf PHP, Java und aehnliches vollstaendig verzichten.

Ich selber habe node.js noch nicht benutzt, aber Du kannst damit sehr einfach einen HTTP-Server erzeugen (siehe das Beispiel auf deren Homepage). Jetzt brauchst Du "nur" noch einen C++ HTTP-Client bzw. einen C++ REST-Client.

Siehe auch folgende Suchen

Ciao

robert

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

Ein Freund sagte mir, ein nettes Programmierbeispiel sei, dass ich eine Art Billigskype herstelle.

Online Audiochat ist aber alles anderes als einfach... oder meinst du ein einfaches Chatprogramm?

Gruß, noisefloor

TheIntruder

(Themenstarter)
Avatar von TheIntruder

Anmeldungsdatum:
26. Juni 2011

Beiträge: 205

Am Anfang ein einfaches Chatprogramm.

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ok. Dann bietet sich als Protokoll und Datenformat irgendwas bewährtes an, was alle gängigen Programmiersprachen problemlos lesen und generieren können.

Also z.B. HTTP als Protokoll und JSON als Datenformat. Beim Datenformat gibt es sicherlich aber auch noch genügend Alternativen 😉

Gruß, noisefloor

thomsen

Avatar von thomsen

Anmeldungsdatum:
9. Juni 2010

Beiträge: 188

Wohnort: Hamburg

Google mal nach Implementierungen für TCP Sockets in der von dir favorisierten Technologie.

Für Qt z.B.: http://www.qtforum.org/article/9/qt-network-tutorial.html

Oder direkt die Qt Referenz: http://doc.qt.nokia.com/4.7-snapshot/qlocalserver.html

Ich favorisiere bei solchen Implementierungen serverseitig Java als Technologie. Ein sehr gutes Tutorial hierzu gibt es hier: http://de.wikibooks.org/wiki/Java_Standard:_Socket_ServerSocket_(java.net)_UDP_und_TCP_IP

TheIntruder

(Themenstarter)
Avatar von TheIntruder

Anmeldungsdatum:
26. Juni 2011

Beiträge: 205

thomsen schrieb:

Google mal nach Implementierungen für TCP Sockets in der von dir favorisierten Technologie.

Für Qt z.B.: http://www.qtforum.org/article/9/qt-network-tutorial.html

Oder direkt die Qt Referenz: http://doc.qt.nokia.com/4.7-snapshot/qlocalserver.html

Ich favorisiere bei solchen Implementierungen serverseitig Java als Technologie. Ein sehr gutes Tutorial hierzu gibt es hier: http://de.wikibooks.org/wiki/Java_Standard:_Socket_ServerSocket_(java.net)_UDP_und_TCP_IP

Wie meinst du das? Das Java den node.js Coder herstellen soll?

TheIntruder

(Themenstarter)
Avatar von TheIntruder

Anmeldungsdatum:
26. Juni 2011

Beiträge: 205

thomsen schrieb:

Google mal nach Implementierungen für TCP Sockets in der von dir favorisierten Technologie.

Für Qt z.B.: http://www.qtforum.org/article/9/qt-network-tutorial.html

Oder direkt die Qt Referenz: http://doc.qt.nokia.com/4.7-snapshot/qlocalserver.html

Ich favorisiere bei solchen Implementierungen serverseitig Java als Technologie. Ein sehr gutes Tutorial hierzu gibt es hier: http://de.wikibooks.org/wiki/Java_Standard:_Socket_ServerSocket_(java.net)_UDP_und_TCP_IP

Wie meinst du das? Das Java den node.js Coder herstellen soll? Wollte auf Java eher vollstaendig verzichten.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/* A simple server in the internet domain using TCP
   The port number is passed as an argument */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h> 
#include <sys/socket.h>
#include <netinet/in.h>

void error(const char *msg)
{
    perror(msg);
    exit(1);
}

int main(int argc, char *argv[])
{
     int sockfd, newsockfd, portno;
     socklen_t clilen;
     char buffer[256];
     struct sockaddr_in serv_addr, cli_addr;
     int n;
     sockfd = socket(AF_INET, SOCK_STREAM, 0);
     if (sockfd < 0) 
        error("ERROR opening socket");
     bzero((char *) &serv_addr, sizeof(serv_addr));
     portno = atoi(argv[1]);
     serv_addr.sin_family = AF_INET;
     serv_addr.sin_addr.s_addr = INADDR_ANY;
     serv_addr.sin_port = htons(portno);
     if (bind(sockfd, (struct sockaddr *) &serv_addr,
              sizeof(serv_addr)) < 0) 
              error("ERROR on binding");
     listen(sockfd,5);
     clilen = sizeof(cli_addr);
     newsockfd = accept(sockfd, 
                 (struct sockaddr *) &cli_addr, 
                 &clilen);
     if (newsockfd < 0) 
          error("ERROR on accept");
     bzero(buffer,256);
     n = read(newsockfd,buffer,255);
     if (n < 0) error("ERROR reading from socket");
     printf("Here is the message: %s\n",buffer);
     n = write(newsockfd,"I got your message",18);
     if (n < 0) error("ERROR writing to socket");
     close(newsockfd);
     close(sockfd);
     return 0; 
}

Wie schreibt sich der obige Code in node.js?

thomsen

Avatar von thomsen

Anmeldungsdatum:
9. Juni 2010

Beiträge: 188

Wohnort: Hamburg

Wie das in node.js aussieht, weiß ich nicht. Was ich meinte war eine Serverimplementierung direkt in Java, sodass der Server später in einer JVM läuft und der Qt-Client sich über einen TCP-Socket mit dem Java Server verbindet.

Antworten |