[搬运脚本]JAVA改AutoJS_TCP服务端与客户端的通讯示例
管理员

今天下午一直再看tcp通讯相关的资料...偶然看到一段用JAVA写的代码,便修改了一下迁移过来

需要的拿走吧!!!

首先是服务端运行的代码!

auto();
console.show();

importClass('java.io.BufferedReader');
importClass('java.io.IOException');
importClass('java.io.InputStream');
importClass('java.io.InputStreamReader');
importClass('java.io.OutputStream');
importClass('java.io.PrintWriter');
importClass('java.net.Socket');
importClass('java.net.ServerSocket');

var serversocket = new ServerSocket(8888);
log('服务端已经启动,正在等待客户端连接...');
var socket = serversocket.accept();
var inputStream = socket.getInputStream();
var inputStreamReader = new InputStreamReader(inputStream);
var bufferedReader = new BufferedReader(inputStreamReader);
var temp = null;
var info = "";
while(true){
    temp = bufferedReader.readLine();
    if(temp != null) {
        info += temp;
        log("已接收到客户端连接\n");
        log("收到客户端信息:\n"+info+"\n\n当前客户端ip为:\n"+socket.getInetAddress().getHostAddress());
        break;
    }
    sleep(200);
}
var outputStream = socket.getOutputStream();
var printWriter = new PrintWriter(outputStream);
printWriter.print("你好,服务端已接收到您的信息");
printWriter.flush();
socket.shutdownOutput();//关闭输出流
//关闭对应资源
printWriter.close();
outputStream.close();
bufferedReader.close();
inputStream.close();
serversocket.close();

下面是客户端运行的代码----注意修改服务端IP

auto();
console.show();

var SERVERIP = '192.168.1.154'; //这里修改成服务端IP

importClass('java.io.BufferedReader');
importClass('java.io.IOException');
importClass('java.io.InputStream');
importClass('java.io.InputStreamReader');
importClass('java.io.OutputStream');
importClass('java.io.PrintWriter');
importClass('java.net.Socket');
importClass('java.net.UnknownHostException');

//创建Socket对象
var socket = new Socket(SERVERIP,8888);
//根据输入输出流和服务端连接
var outputStream = socket.getOutputStream(); //获取一个输出流,向服务端发送信息
var printWriter = new PrintWriter(outputStream); //将输出流包装成打印流
printWriter.print("服务端你好,我是DcrClub,请求连接...");
printWriter.flush();
socket.shutdownOutput();//关闭输出流

var inputStream = socket.getInputStream(); //获取一个输入流,接收服务端的信息
var inputStreamReader = new InputStreamReader(inputStream); //包装成字符流,提高效率
var bufferedReader = new BufferedReader(inputStreamReader); //缓冲区
var info = "";
var temp = null;
while(true){
    temp = bufferedReader.readLine();
    if(temp != null) {
        info += temp;
        log("客户端接收服务端发送信息:"+info);
        break;
    }
    sleep(200);
}
//关闭相对应的资源
bufferedReader.close();
inputStream.close();
printWriter.close();
outputStream.close();
socket.close();

效果图: 论坛无法显示gif.算了
http://yun.dyzj.online:8000/f/b7b1d74b46/

最后由 DcrClub 编辑

谢谢大神啦!
找了好久tcp发送的方法!
灰常感谢(❁´ω`❁)

管理员

@皓月 只是个基础代码,至于怎么扩展,需要你自己搞了

如何import第三方的jar包或class呢,需要实现websocket,android java的api里是不是没有呢

管理员

@ares 额,这个还没研究过...只用自带的

管理员

@醋氨氵骨稽

写个监听线程,执行这个 serversocket.close(); 方法就能停止了

感觉这个方法只能发送一次信息如果要多次发送信息改该如何改写啊?

管理员

@winniezc 只是个搬运...更复杂的...请自行百度,然后安卓代码转成 js代码

  • 10
    帖子
  • 705
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待