Android studio中采用soket实现基本telnet通信

telnet协议作为tcp协议的一种,编程过程中才用soket可以很方便的实现通信。
这里实现的场景是通过android端发送指令到交换机/路由器上,自动配置设备,完成特定的需求。
使用Soket基本原理:
一,初始化一个socket;
二,获取socket输入/输出流;
三,发送/接收数据;
四,数据处理。

实现代码:

1, 初始化一个socket

Socket mysocket;
new Thread(new Runnable() {
@Override
public void run() {
mysocket=new Socket(“10.30.139.199”,80);
//网络操作只能在新线程中操作否则会报错

}
}

2, 获取输入流
InputStream inputStream=mysocket.getInputStream();

3, 先写一个发送数据的方法
public void SendData(String str) throws IOException {
byte[] datatemp =str.getBytes();
byte[] data = new byte[datatemp.length + 2];
char[] closechar = new char[2];
closechar[0] = (char) (10);
closechar[1] = (char)(13);
Charset cs = Charset.forName(“UTF-8”);
CharBuffer cb = CharBuffer.allocate(closechar.length);
cb.put(closechar);
cb.flip();
ByteBuffer bb = cs.encode(cb);
byte[] closebyte =bb.array();
for (int i = 0; i < datatemp.length; i++)
{
data[i] = datatemp[i];
}
data[data.length - 2] = closebyte[0];
data[data.length - 1] = closebyte[1];
DataOutputStream dataOutputStream=new DataOutputStream(outputStream);
dataOutputStream.write(data, 0, data.length);
dataOutputStream.flush() ;

}

4,写一个接收数据的方法
public String Recevie() throws IOException {

byte[] bytes=new byte[1024];  //接收数据多的话需要循环这里接收数据量小就直接接收了
inputStream.read(bytes,0,bytes.length);
return new String(bytes);

}

5,有了基本东西,就可以进行收发数据了
SendData (“username”);
Thread.sleep(1000); //设备有反应速度要有一定的延时等待
SendData (“passwords”);
Thread.sleep(1000);
SendData (“en”);
Thread.sleep(1000);
String result=Recevie();
//接收设备反馈的信息,如果对显示的信息有特殊要求再做进一步处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值