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));
}
});
效果图:

android之TCP客户端框架的更多相关文章
- android 之TCP客户端编程
补充,由于这篇文章是自己入门的时候写的,随着Android系统的升级可能有发送需要在任务 中进行,如有问题请百度 thread 或者看下面链接的文章 https://www.cnblogs.com/y ...
- Android之TCP服务器编程
推荐一个学java或C++的网站http://www.weixueyuan.net/,本来想自己学了总结出来再写博客,现在没时间,打字太慢!!!!,又想让这好东西让许多人知道. 关于网络通信:每一台电 ...
- linux epoll机制对TCP 客户端和服务端的监听C代码通用框架实现
1 TCP简介 tcp是一种基于流的应用层协议,其“可靠的数据传输”实现的原理就是,“拥塞控制”的滑动窗口机制,该机制包含的算法主要有“慢启动”,“拥塞避免”,“快速重传”. 2 TCP socket ...
- 24-ESP8266 SDK开发基础入门篇--Android TCP客户端.控制 Wi-Fi输出PWM的占空比,调节LED亮度
https://www.cnblogs.com/yangfengwu/p/11204436.html 刚才有人说需要点鸡汤.... 我想想哈;我还没问关于哪方面的鸡汤呢!!! 我所一直走的路线 第一: ...
- 23-ESP8266 SDK开发基础入门篇--编写Android TCP客户端 , 加入消息处理
https://www.cnblogs.com/yangfengwu/p/11203546.html 先做接收消息 然后接着 public class MainActivity extends App ...
- 艺萌文件上传下载及自动更新系统(基于networkComms开源TCP通信框架)
1.艺萌文件上传下载及自动更新系统,基于Winform技术,采用CS架构,开发工具为vs2010,.net2.0版本(可以很容易升级为3.5和4.0版本)开发语言c#. 本系统主要帮助客户学习基于TC ...
- 无线客户端框架设计(5.1):将JSON映射为实体对象(iOS篇)
iOS开发人员已经习惯于将JSON转换为字典或者数组来进行操作了,接下来我要做的事情,可能匪夷所思,但是,对WP和Android开发人员而言,他们更倾向于将JSON转换为实体对象进行操作. 我所设计的 ...
- Android Small插件化框架解读——Activity注册和生命周期
通过对嵌入式企鹅圈原创团队成员degao之前发表的<Android Small插件化框架源码分析>的学习,对Android使用的插件化技术有了初步的了解,但还是有很多需要认真学习的地方,特 ...
- 基于Retrofit+RxJava的Android分层网络请求框架
目前已经有不少Android客户端在使用Retrofit+RxJava实现网络请求了,相比于xUtils,Volley等网络访问框架,其具有网络访问效率高(基于OkHttp).内存占用少.代码量小以及 ...
随机推荐
- PHP与MySQL动态网站开发2
处理HTML表单 <input type="text" name="city"/> 通过$_REQUEST['city'];访问,$_REQUEST ...
- return遇到finally
public class Test { public static void main(String[] args) { System.out.println("=============t ...
- 【转】Spark是基于内存的分布式计算引擎
Spark是基于内存的分布式计算引擎,以处理的高效和稳定著称.然而在实际的应用开发过程中,开发者还是会遇到种种问题,其中一大类就是和性能相关.在本文中,笔者将结合自身实践,谈谈如何尽可能地提高应用程序 ...
- Failed to install apk on device timeout
安装应用时遇到下面的错误 Failed to install *.apk on device timeout 在eclipse中,window->prefreences->DDMS-& ...
- Umbraco中的ModelBuilder
Umbraco中的ModelBuilder有以下几种形式 Pure Live models Dll models LiveDll models AppData models LiveAppData m ...
- Java NIO 备忘
$.backlog:可以把它简单理解为一个 listening socket 的请求连接队列的限制.当队列中的连接请求达到队列限制时,kernel 会拒绝信的连接请求.只有当应用程序通过 accept ...
- 我的JS 类 写法
长这样! var p,p1; //构造函数 function Person(name) { this.name = name; } //原型对象 var proto = { getName : fun ...
- 用RelativeLayout布局可以在imageview中写上文字
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- android 基站定位
package cn.LocationStation; import java.io.BufferedReader; import java.io.InputStream; import java.i ...
- iOS开发——新特性OC篇&IOS9 系统新特性
IOS9 系统新特性 2015年6月89号凌晨召开的WWDC 2015苹果开发者大会发布了全新的iOS 9系统,PC6小编今天给大家整理了这次iOS9的系统更新带来了哪些新的功能与升级,本次新功能一览 ...