原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處
在Node中,專門提供了net模塊來實現TCP服務器與TCP客戶端之間通信。
1.創建TCP服務器
var net=require('net'); //引入net模塊
var server=net.createServer(); //創建TCP服務
server.listen(8080,localhost,function(){ //創建監聽
console.log('監聽8080端口')});
測試服務器:telnet localhost 8080
(開新的cmd來測試)
獲取連接數:
server.getConnections(function (err,count) {
console.log('當前存在%d個玩家',count);
})
2.關閉服務器
server.on('close',function(){
console.log('關閉連接')
});
關閉服務器之后,會拒絕新的用戶訪問,但是不會斷開正在連接的用戶,當用戶退出后,全部關閉
數據接收net.socket
代表一個socket對象,當客戶端與服務器建立連接的時候作為參數會被自動創建的net.socket
對象
socket端口對象可用來來查看端口的信息,也可以用來讀取客戶端發送的數據流
server.on('connection',function(socket){
socket.on('data',function(data){ //監聽數據
console.log(data) //輸出數據
})
});
此時讀取到的data是以Buffer對象獲取的,輸出會是二進制,這里可以使用setEcoding方法來設置編碼方式:
socket.setEcoding('utf-8');
或者是將其轉換成字符串
server.on('connection',function(socket){
socket.on('data',function(data){
console.log(data.toString()) //將數據轉換成字符串
})
});
當客戶端被關閉之后,socket就會被結束
socket.on('end',function(){
console.log('客戶端被關閉')
})
如果電腦的telnet服務沒開啟,可以通過控制面板來打開windows的相關功能,把telnet的服務器與客戶端都勾選,不同版本電腦請自行百度