调用方式:new MyThread().start();
//========================= 服务器=================
//=================================================
/** Socket 客户端*/
class MyThread extends Thread {
@Override
public void run() {
//定义消息
Bundle bundle = new Bundle();
bundle.clear();
try {
Socket socket = new Socket("106.15.39.150",65431);//阿里云服务器 IP ok
System.out.println("localhost");
// 2. 获取输出流,并向服务器端发送信息
OutputStream os = socket.getOutputStream();//字节输出流
PrintWriter pw = new PrintWriter(os);//将输出流包装为打印流
pw.write(textRsult.trim());// 此地为发送到服务器的消息
pw.flush();
socket.shutdownOutput();//关闭输出流
// 3. 获取输入流,接收服务器的信息
InputStream is = socket.getInputStream();//字节输入流
BufferedReader br = new BufferedReader(new InputStreamReader(is));//将字节流转换为字符流 为输入流添加缓冲
String info="";
textLTL = "";
/** 接收服务器返回的标签 */
while ((info=br.readLine())!=null) {//循环读取客服端的信息
System.out.println("我是客户端,服务器说: "+info);
textLTL += info;
}
/** 读出操作*/
outputLTL=null;
outputLTL = textLTL;
if (!outputLTL.trim().equals("")){
// 语音合成 服务器返回结果
mTts.startSpeaking(outputLTL, mTtsListener);
}
/** 不可 在此处修改UI 因为其为县城*/
/** 所以跳出三界外去更新UI即可 */
WakeDemo.this.runOnUiThread(updateThread);
/** 接收确认语音 */
// 4. 关闭相关资源
br.close();
is.close();
pw.close();
os.close();
socket.close();
} catch (UnknownHostException e) {
System.err.println("错了 001");
e.printStackTrace();
} catch (IOException e) {
System.err.println("错了 002");
e.printStackTrace();
}
}
}
//========== 线程外更新UI =======
Runnable updateThread = new Runnable()
{
@Override
public void run()
{
//更新UI
showTip(outputLTL);
}
};
点击查看更多内容
4人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦