效果图:
在这里插入图片描述
在这里插入图片描述

nodejs 服务端:

	var net = require('net');
	var HOST = '192.168.1.8';
	var PORT = 9999;
	
	let server = net.createServer(function(sock) {
	    console.log('客户端信息: ' + sock.remoteAddress + ':' + sock.remotePort);
	    
	    sock.setTimeout(3000);
	
	    sock.on('connect', function(){
	        console.log('connect');
	    })
	
	    sock.on('ready', function(){
	        console.log('ready');
	    })
	
	    sock.on('data', function(data) {
	        console.log('收到的消息: ' + sock.remoteAddress + ': ' + data);
	        sock.write('你说: "' + data + '"');
	    });
	
	    sock.on('close', function(data) {
	        console.log('CLOSED: ' + sock.remoteAddress + ' ' + sock.remotePort);
	    });
	
	    
	    sock.on('error', function(err) {
	        console.log(err);
	        sock.destroy();
	    })
	
	    sock.on('timeout', function() {
	        console.log('timeout: '+ sock.remoteAddress + ' ' + sock.remotePort);
	        sock.destroy();
	    })
	});
	
	server.on('error', (err) => {
	    console.log(err);
	});
	
	now = new Date(new Date().getTime() + 28800000);
	console.log(now);
	console.log('Server listening on ' + HOST +':'+ PORT);
	server.listen(PORT, HOST);

uniapp 客户端:

	//tcp通讯
	tcptest(str) {				  
		var Socket = plus.android.importClass("java.net.Socket");  
		var PrintWriter = plus.android.importClass("java.io.PrintWriter");  
		var BufferedWriter = plus.android.importClass("java.io.BufferedWriter");  
		var OutputStreamWriter = plus.android.importClass("java.io.OutputStreamWriter");  
		var BufferedReader = plus.android.importClass("java.io.BufferedReader");  
		var InputStreamReader = plus.android.importClass("java.io.InputStreamReader");
		var InetSocketAddress = plus.android.importClass("java.net.InetSocketAddress");	
	
		//连接
		var sk = new Socket('192.168.1.8', 9999);
		sk.setSoTimeout(5000);
		
		//发送
		var outputStreamWriter = new OutputStreamWriter(sk.getOutputStream());
		var bufferWriter = new BufferedWriter(outputStreamWriter);  
		var out = new PrintWriter(bufferWriter, true);
		out.print(str);
		out.flush();					
		
		//接收
		var inputStreamReader = new InputStreamReader(sk.getInputStream());  
		var br = new BufferedReader(inputStreamReader);  
		var msg = br.readLine();
		//console.log(msg);
		
		//给外部返回值
		return msg ;					
		
		//关闭tcp连接
		out.close();
		br.close();				
	},
			

以下是用 nodejs编写的客户端:

var net = require('net');

var HOST = '192.168.1.8';
var PORT = 9999;

var client = new net.Socket();
client.connect(PORT, HOST, function() {
    console.log('CONNECTED TO: ' + HOST + ':' + PORT);
    client.write('I am Chuck Norris!');
});


client.on('data', function(data) {
    console.log('DATA: ' + data);
    client.destroy();
});

client.on('close', function() {
    console.log('Connection closed');
});

参考的文档:https://www.dazhuanlan.com/raintwo1/topics/1121328

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐