一、程序框架

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

          }
      });

效果图:

最新文章

  1. October 30th Week 45th Sunday 2016
  2. ListView的CheckBox实现全部选中/不选中
  3. 闲扯json取值,联想map取值。
  4. The prefix "context" for element "context:component-scan" is not bound.
  5. 给Testerhome测试小道消息做个硬广告
  6. phpcms还原被删除的栏目
  7. 知识总结: Activity的四种启动模式
  8. PHP 中变量的间接引用
  9. hdu 5312 Sequence(数学推导+线性探查(两数相加版))
  10. [MAC Eclipse] Eclipse for MAC 中文乱码的解决办法
  11. Python一个命令开启http下载服务器(可以局域网内共享文件)
  12. 在编写Arcgis Engine 过程中对于接口引用和实现过程过产生的感悟
  13. CORS:source,princple,implimentation in Spring
  14. LeetCode(31): 下一个排列
  15. Android性能优化-减小图片下载大小
  16. mac 安装gevent报错
  17. LDAP summary-- Python ldap
  18. Linux启动vi编辑器时提示E325: ATTENTION解决方案
  19. es6 let关键字
  20. 构建SqlSessionFactory 的过程

热门文章

  1. ubuntu安装和卸载软件命令
  2. iPhone更新失败后如何恢复数据
  3. 在中国Windows Azure服务中创建应用程序的一些不同之处
  4. leptonica 学习笔记2——pixBackgroundNormSimple
  5. A Tour of Go Switch evaluation order
  6. excel 的一些操作
  7. UIImagePickerController拍照与摄像
  8. Android 上拉加载更多功能
  9. POJ 1703 Find them, catch them (并查集)
  10. 【21】必须返回对象时,别妄想返回器reference