File tree Expand file tree Collapse file tree 2 files changed +69
-0
lines changed Expand file tree Collapse file tree 2 files changed +69
-0
lines changed Original file line number Diff line number Diff line change @@ -10,3 +10,32 @@ TCP 提供超时重发,丢弃重复数据,检验数据,流量控制等功
1010
1111TCP 是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。
1212
13+ socket 是双工流,因此它既可读也可写。
14+
15+ ## net 模块
16+
17+ 在Node.js中, net模块用于创建基于流的TCP 或 IPC的服务器与客户端。其中,在Windows上支持命名管道 IPC ,在其他操作系统上 支持 UNIX 域套接字。
18+
19+ net 模块的使用方法如下:
20+
21+ const net = require('net');
22+
23+ ## 创建TCP服务器
24+
25+ close 事件:当服务器关闭的时候触发。
26+
27+ connection 事件:当一个新的 connection 建立的时候触发。
28+
29+ error 事件。当错误出现的时候触发。
30+
31+ listening 事件:当服务被绑定后调用 server.listen() 方法后触发。
32+
33+ ## 发送和接收数据
34+
35+ ## 创建Socket对象
36+
37+ ``` js
38+ server .on (' connection' , (socket ) => {
39+ console .log (' ' )
40+ })
41+ ```
Original file line number Diff line number Diff line change 1+ const net = require ( 'net' ) ;
2+
3+ const server = net . createServer ( ( socket ) => {
4+ socket . end ( 'goodbye\n' ) ;
5+ } ) . on ( 'error' , ( err ) => {
6+ // 处理错误
7+ throw err ;
8+ } ) ;
9+
10+ server . on ( 'close' , ( ) => {
11+ console . log ( '服务器接收到close事件' )
12+ } )
13+
14+ server . on ( 'connection' , ( socket ) => {
15+ console . log ( '服务器接收 connection 事件' )
16+ socket . setEncoding ( 'utf8' ) ;
17+ socket . write ( 'welcome' ) ;
18+
19+ socket . on ( 'data' , ( data ) => {
20+ console . log ( '服务器接收到的数据' + data ) ;
21+
22+ // 如果收到c字符,就终止连接
23+ if ( data == 'c' ) {
24+ socket . write ( 'bye' ) ;
25+ socket . end ( ) ; // 关闭socket, 方法用于终止 Socket 对象 ; 主要用于关闭客户端
26+ server . close ( ) ; // 关闭服务器; 为了 😩 关闭服务器
27+ } else {
28+ socket . write ( data ) ;
29+ }
30+ } )
31+ } )
32+
33+ server . on ( 'listening' , ( ) => {
34+ console . log ( '服务器接收到 listening 事件' )
35+ } )
36+
37+ // 随机获取未绑定的端口
38+ server . listen ( 8888 , ( ) => {
39+ console . log ( '服务器短裤, 占用短裤' ) ;
40+ } )
You can’t perform that action at this time.
0 commit comments