NodeJS是一个用于网络的套接字库吗?

时间:2016-04-08 06:35:30

标签: javascript c node.js sockets

以下是使用# 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)); } }

提供的套接字功能的服务器程序(C)
node

Node JS是一个类似的套接字库,可以帮助JS用户通过套接字进行通信吗?

注意:我会说,node是一个框架而不是库,因为JS代码被web.xml <web-app> <servlet> <servlet-name>org.foo.rest.MyApplication</servlet-name> </servlet> ... <servlet-mapping> <servlet-name>org.foo.rest.MyApplication</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> ... </web-app> 使用,不像上面的C程序调用套接字库函数

1 个答案:

答案 0 :(得分:2)

node.js是一个包含许多库函数的Javascript运行时(能够运行Javascript程序)。一个这样的库函数,它包括一个套接字库,用于建立套接字连接并通过这些套接字进行通信。 node.js中的那个库被称为&#34; net&#34;您可以看到记录的文件here

这只是node.js所做的一件事,它只提供了一种类型的功能。如果不需要,node.js程序不必使用网络库。其他库(如http库)构建在网络库之上,以提供更高级别的网络功能,如http服务器和http请求。

node.js在概念上类似于Python实现的范围。两者都包括一个语言解释器,一组用于核心功能的内置库(网络,文件I / O等等),能够运行以受支持语言编写的程序,以及包含为其编写的其他库的能力。环境或创建自己的库。