2016-04-08 14 views
0

unten ist das Server-Programm (C) unter Verwendung von Socket-Funktionalität von libC bereitgestelltIst NodeJS eine Socket-Bibliothek für Netzwerke?

# include <unistd.h> 
# include <sys/socket.h> 
# include <sys/types.h> 
# include <string.h> 
#include <netinet/in.h> 

main(){ 
int listfd,connfd,retval; 
//pid_t childpid; 
socklen_t clilen; 
struct sockaddr_in cliaddr, servaddr; 

listfd = socket(AF_INET, SOCK_STREAM, 0); 
printf("listfd = %d ", listfd); 
if (listfd < 0){ 
    perror("sock:"); 
    exit(1); 
} 
bzero(&servaddr, sizeof(servaddr)); 
servaddr.sin_family = AF_INET; 
servaddr.sin_addr.s_addr = htonl(INADDR_ANY); 
servaddr.sin_port = htons(8004); 

retval = bind(listfd, (struct sockaddr *) &servaddr, sizeof(servaddr)); 
if(retval < 0){ 
    perror("bind:"); 
    exit(2); 
} 

listen(listfd, 5); 

while(1){ 
    clilen = sizeof(cliaddr); 
    connfd = accept(listfd, (struct sockaddr *) &cliaddr, &clilen); 
     printf(" connfd= %d",connfd); 
    printf(" client connected \n"); 
    printf(" client's port no = %d\n",htons(cliaddr.sin_port)); 
    } 
} 

Ist Knoten JS eine ähnliche Socket-Bibliothek, die JS Benutzer hilft Steckdosen zu kommunizieren?

Hinweis: Ich würde sagen, node ist ein Framework, aber nicht Bibliothek, weil JS-Code von node im Gegensatz zu oben C-Programm verbraucht Aufruf Funktionen Socket-Bibliothek

Antwort

1

node.js ist eine Javascript-Laufzeit (lauffähig Javascript-Programme), die viele Bibliotheksfunktionen enthalten. Eine solche Bibliotheksfunktion umfasst eine Socket-Bibliothek, um Socket-Verbindungen herzustellen und über diese Sockets zu kommunizieren. Diese Bibliothek in node.js wird als "net" -Bibliothek bezeichnet, die Sie dokumentiert sehen können here.

Dies ist nur eine Sache, die node.js und nur eine Art von Feature, die es bietet. Ein Programm node.js muss die Netzbibliothek nicht verwenden, wenn dies nicht erforderlich ist. Andere Bibliotheken wie die http-Bibliothek sind auf der Netzbibliothek aufgebaut, um eine höhere Netzwerkfunktionalität wie HTTP-Server und http-Anfragen zu bieten.

node.js ist konzeptionell ähnlich wie eine Python-Implementierung im Rahmen dessen, was es abdeckt. Beide enthalten einen Sprachinterpreter, eine Reihe von integrierten Bibliotheken für Kernfunktionen (Netzwerk, Datei-I/O, usw.), die Fähigkeit, Programme in der unterstützten Sprache zu schreiben und die Möglichkeit, andere für die Bibliothek geschriebene Bibliotheken einzubinden Umgebung oder um eigene Bibliotheken zu erstellen.

+0

Also kümmert sich v8 um Syntaxfehler im Code. Ist das korrekt? NodeJS nur Bibliotheken für die Vernetzung/etc .. Das ist, was ich verstehe, wenn Sie sagen, JS Laufzeit – overexchange

+0

@overexchange - Ich weiß nicht, was Sie mit "kümmert sich um Syntaxfehler", aber V8 ist die Engine, die analysiert und führt Javascript-Code in node.js aus, so dass es der Teil von node.js ist, der zuerst auf Syntaxfehler stoßen wird, wenn sie vorhanden sind. – jfriend00

+0

Ja, ich meine, v8 kümmert sich um das Parsen und Ausführen von JS-Code. Bietet nodeJS im Kern mehrere JS Libraries für Netzwerk/Krypto/etc ....? – overexchange

Verwandte Themen