服務(wù)端
var net = require('net')
var HOST = '127.0.0.1'
var PORT = 8000
// 創(chuàng)建一個(gè)TCP服務(wù)器實(shí)例掸驱,調(diào)用listen函數(shù)開始監(jiān)聽指定端口
// 傳入net.createServer()的回調(diào)函數(shù)將作為”connection“事件的處理函數(shù)
// 在每一個(gè)“connection”事件中碗脊,該回調(diào)函數(shù)接收到的socket對(duì)象是唯一的
net.createServer(function(sock) {
// 我們獲得一個(gè)連接 - 該連接自動(dòng)關(guān)聯(lián)一個(gè)socket對(duì)象
console.log('連接到: ' + sock.remoteAddress + ':' + sock.remotePort)
// 為這個(gè)socket實(shí)例添加一個(gè)"data"事件處理函數(shù)
sock.on('data', function(data) {
console.log('DATA ' + sock.remoteAddress + ': ' + data)
// 回發(fā)該數(shù)據(jù),客戶端將收到來自服務(wù)端的數(shù)據(jù)
sock.write('來自客戶端的數(shù)據(jù)為 "' + data + '"')
})
// 為這個(gè)socket實(shí)例添加一個(gè)"close"事件處理函數(shù)
sock.on('close', function(data) {
console.log('CLOSED: ' +
sock.remoteAddress + ' ' + sock.remotePort)
})
}).listen(PORT, HOST)
console.log('Server listening on ' + HOST +':'+ PORT)
客戶端
var net = require('net')
var HOST = '127.0.0.1'
var PORT = 8000
var client = new net.Socket()
client.connect(PORT, HOST, function() {
console.log('已連接到: ' + HOST + ':' + PORT)
// 建立連接后立即向服務(wù)器發(fā)送數(shù)據(jù)蛉鹿,服務(wù)器將收到這些數(shù)據(jù)
client.write('來自客戶端的數(shù)據(jù)!')
})
// 為客戶端添加“data”事件處理函數(shù)
// data是服務(wù)器發(fā)回的數(shù)據(jù)
client.on('data', function(data) {
console.log('DATA: ' + data)
// 完全關(guān)閉連接
client.destroy()
})
// 為客戶端添加“close”事件處理函數(shù)
client.on('close', function() {
console.log('連接已關(guān)閉')
})