ソケット長接続の3つの方法

1987 ワード

1.netサービス側サービス側【server.js】
	const net = require('net')
	const server = new net.createServer()
	//     
	let clinets=[]
	server.on('connection', (client) => {//              
	clinets.push(client) //            ,       client     
	                          //client          
	  client.write('    1818   ')//             。
	  client.on('data', (msg) => {//           
	   console.log('       ')
	   console.log(msg.toString())//msg buffer   。       。
	   broadcast(msg.toString()) 
	  })
	  client.on('error', (e) => {
	   //     
	  })
	  client.on('close', (data) => {
	   //    
	   console.log('    ')
	  })
	})
	/*
	1.          
	2.                           
	3.                    ,
	*/
	function broadcast(msg){
	  for(var i=0;i

クライアント【クライアント.js】
	var net = require('net')
	var readline=require('readline')
	var socket = new net.Socket()
	//    socket     
	socket.setEncoding = 'UTF-8'
	socket.connect('9000', '127.0.0.1', () => {
	  //   socket        
	})
	socket.on('data', (msg) => {
	  //             
	  console.log(msg.toString())
	  say()
	  //         ,       ,          ,                  ,      ,        。
	})
	socket.on('error', function (err) {
	  console.log('error' + err);
	})
	socket.on('close', function () {
	  console.log('connection closeed');
	})
	const r1 = readline.createInterface({
	    input: process.stdin,
	    output: process.stdout
	  })
	 function say(){
	    r1.question('   :', (inputMsg) => {
	        // console.log(inputMsg)
	        //inputMsg      ,        
	        socket.write(inputMsg)
	    })
	 }

起動方法:node server.js node client.js原理:1.サーバーを起動すると、彼はサーバーのリンクを待っている状態で、サーバーのポート番号、ipはクライアントのリンクのipとポート番号です.2.クライアントとサーバがリンクされている場合はconnectを実行します.