-
Notifications
You must be signed in to change notification settings - Fork 94
Expand file tree
/
Copy pathnet3.js
More file actions
49 lines (46 loc) · 1.39 KB
/
net3.js
File metadata and controls
49 lines (46 loc) · 1.39 KB
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
let net = require('net');
let server = net.createServer({
// 如果 pauseOnConnect 被设置为 true, 那么与连接相关的套接字都会暂停,也不会从套接字句柄读取数据。 这样就允许连接在进程之间传递,避免数据被最初的进程读取。 如果想从一个暂停的套接字开始读数据
pauseOnConnect: true
}, (socket) => {
socket.setEncoding('utf8');
socket.on('data', (data) => {
console.log(data);
});
socket.on('end', () => {
console.log('client disconnected');
});
//接收到客户端发送的错误就会调用
socket.on('error', (err) => {
console.log("error");
});
socket.on('close', () => {
console.log("close socket");
});
socket.end(`
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 5
hello`)
console.log('request');
});
server.listen(3000, () => {
console.log('opened server on', server.address({}));
});
server.on('connection', (socket) => {
console.log('connection');
});
//server.unref();//停止node对server的监听事件
//服务器关闭事件
server.on('close', (socket) => {
console.log('close server');
});
server.on('error', (e) => {
if (e.code === 'EADDRINUSE') {
console.log('Address in use, retrying...');
setTimeout(() => {
server.close();
server.listen(PORT, HOST);
}, 1000);
}
});