net.createServer([options][, connectionListener])
-
options
<Object>allowHalfOpen
<boolean> 如果設置為false
,那麽當可讀端結束時,套接字將自動結束可寫端。 默認:false
。pauseOnConnect
<boolean> 指示套接字是否應在傳入連接時暫停。 默認:false
。noDelay
<boolean> 如果設置為true
,它會在收到新的傳入連接後立即禁用 Nagle 算法。 默認:false
。keepAlive
<boolean> 如果設置為true
,它會在收到新的傳入連接後立即在套接字上啟用 keep-alive 函數,與socket.setKeepAlive([enable][, initialDelay])
false
。keepAliveInitialDelay
<number> 如果設置為正數,它會設置在空閑套接字上發送第一個保活探測之前的初始延遲。 默認:0
。
-
connectionListener
<Function> 自動設置為'connection'
-
返回: <net.Server>
創建一個新的 TCP 或 IPC 服務器。
如果 allowHalfOpen
設置為 true
,當套接字的另一端發出傳輸結束信號時,服務器隻會在顯式調用
時發回傳輸結束。例如,在 TCP 上下文中,當接收到 FIN 打包時,隻有在顯式調用socket.end()
時才會發回打包的 FIN。在那之前,連接是half-closed(不可讀但仍可寫)。有關詳細信息,請參閱socket.end()
事件和RFC 1122(第 4.2.2.13 節)。'end'
如果 pauseOnConnect
設置為 true
,則與每個傳入連接關聯的套接字將暫停,並且不會從其句柄中讀取任何數據。這允許在進程之間傳遞連接,而原始進程不會讀取任何數據。要開始從暫停的套接字讀取數據,請調用
。socket.resume()
服務器可以是 TCP 服務器或 IPC 服務器,具體取決於它的
目標。listen()
下麵是一個 TCP 回顯服務器的示例,它偵聽端口 8124 上的連接:
const net = require('node:net');
const server = net.createServer((c) => {
// 'connection' listener.
console.log('client connected');
c.on('end', () => {
console.log('client disconnected');
});
c.write('hello\r\n');
c.pipe(c);
});
server.on('error', (err) => {
throw err;
});
server.listen(8124, () => {
console.log('server bound');
});
使用 telnet
對此進行測試:
$ telnet localhost 8124
監聽套接字 /tmp/echo.sock
:
server.listen('/tmp/echo.sock', () => {
console.log('server bound');
});
使用 nc
連接到 Unix 域套接字服務器:
$ nc -U /tmp/echo.sock
相關用法
- Node.js net.createConnection(options[, connectListener])用法及代碼示例
- Node.js net.isIP(input)用法及代碼示例
- Node.js net.isIPv6(input)用法及代碼示例
- Node.js net.Server.address()用法及代碼示例
- Node.js net.Server.listen()用法及代碼示例
- Node.js net.Socket.setTimeout(timeout[, callback])用法及代碼示例
- Node.js net.BlockList.check(address[, type])用法及代碼示例
- Node.js net.isIPv4(input)用法及代碼示例
- Node.js new assert.AssertionError(options)用法及代碼示例
- Node.js new AsyncResource(type[, options])用法及代碼示例
- Node.js new stream.Duplex(options)用法及代碼示例
- Node.js new stream.Readable([options])用法及代碼示例
- Node.js new Console(options)用法及代碼示例
- Node.js new URLSearchParams(obj)用法及代碼示例
- Node.js new crypto.Certificate()用法及代碼示例
- Node.js new stream.Writable([options])用法及代碼示例
- Node.js new URLSearchParams(iterable)用法及代碼示例
- Node.js new Agent([options])用法及代碼示例
- Node.js new vm.SourceTextModule(code[, options])用法及代碼示例
- Node.js new stream.Transform([options])用法及代碼示例
- Node.js new PerformanceObserver(callback)用法及代碼示例
- Node.js new URL(input[, base])用法及代碼示例
- Node.js new URLSearchParams(string)用法及代碼示例
- Node.js new assert.CallTracker()用法及代碼示例
- Node.js ServerHttp2Stream http2stream.pushStream(headers[, options], callback)用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 net.createServer([options][, connectionListener])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。