zoukankan      html  css  js  c++  java
  • android之TCP客户端框架

    一、程序框架

      1.1 创建方法

        onCreate

          1.1.1 创建连接按键线程,并使能线程(触发原因:可按键、其他操作,并进行状态判断):

            Connect_Thread connect_Thread = new Connect_Thread();

            connect_Thread.start();

          1.1.2 关闭连接按键线程,并复位(触发原因:可按键、其他操作,并进行状态判断):

            socket.close();

            socket=null;

          1.1.3 发送给服务器数据(触发原因:可按键、其他操作):

            outputStream = socket.getOutputStream();

            outputStream.write(MsgEditText.getText().toString().getBytes());

      1.2 连接线程

        class Connect_Thread extends Thread

        1.2.1 run方法

          1.2.1.1 如果socket为null,即没连接过

              InetAddress ipAddress = InetAddress.getByName(IPEditText.getText().toString());//这里获取IP是通过EditText,也可以其他赋值给InetAddress

              int port =Integer.valueOf(PortText.getText().toString());//这里获取端口号是通过EditText,也可以其他赋值给InetAddress

              socket = new Socket(ipAddress, port);//创建连接地址和端口

          1.2.1.2 在创建完连接后启动接收线程

                Receive_Thread receive_Thread = new Receive_Thread();

                receive_Thread.start();

      1.3 读取线程

        class Receive_Thread extends Thread

        1.3.1 run方法

          死循环一直读取

          final byte[] buffer = new byte[1024];//创建接收缓冲区

           inputStream = socket.getInputStream();

          final int len = inputStream.read(buffer);//数据读出来,并且返回数据的长度

          runOnUiThread(new Runnable() {

            @Override

            public void run() {

            RrceiveEditText.setText(new String(buffer,0,len));

              }
          });

    效果图:

  • 相关阅读:
    ubuntu與win7雙系統引導的默認系統問題
    Mac正确删除应用程序的方法
    latex链接外部文件
    ubuntu安装sunjava6
    String.Index 和 String.Split的用法例子
    关于数组传递以及ref,out的例子
    通过XElement查询XML的几种方法
    递归的基本例子
    frame与iframe的区别
    C#数组的用法,out传递值的用法
  • 原文地址:https://www.cnblogs.com/pokerface/p/6228916.html
Copyright © 2011-2022 走看看