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));

              }
          });

    效果图:

  • 相关阅读:
    sql 主键 标识 默认值
    SQL Server跨服务器查询
    C# 取整数
    RegisterClientScriptBlock、RegisterStartupScript
    UpdatePanel
    C#创建(从数据库中导出)Excel文件(含Interop.Excel.Dll)
    基类、接口的应用——表单控件:一次添加、修改一条记录,一次修改多条记录。(上)
    利用JS获取IE客户端IP及MAC的实现
    Net用DataTable导出Excel通用函数(修正了Excel进程删除不掉问题)
    感人至深的文章
  • 原文地址:https://www.cnblogs.com/pokerface/p/6228916.html
Copyright © 2011-2022 走看看