1 简介
Socket 套接字节 ,是基于TCP/IP 协议 传输层封装 ,作用:作为网络层和应用层的纽带
2 Socket 和 SocketServer
socket作为客户端,SocketServer作为服务端,通常由Socketserver实例调用accpt方法来监听Socket是否连接,如果连接则accpt方法返回Socket对象 ,数据以流的方式进行传输。
3 运用
与wifi模块连接
注意:IP地址不可为虚拟机IP,客户端和服务端监听得端口必须一致,数据处理一般在线程中处理
/*线程可以通过三种方式创建
1 继承 Thread
2 继承Runable
3 直接通过线程池创建TheadPool
*/
//客户端
public class SocketClinet extends Thread{
//数据流操作对象
private InputStream input;
private outPutStream output;
//网络连接套字节
private Socket socket;
//Android消息对象 用于处理UI线程与子线程的数据更新
private Handler hcline;
public SocketClinet(Handler hand,Socket s){
this.hcline=hand;
this.socket =s;
}
public void run{
//循环处理消息
try
{
while(true)
{
//socket不为空即是已连接
if(socket!=null)
{
input=socket.getInputStream();
out=socket.getoutputStream();
//读取数据
byte [] data=new byte [1024];
int len=input.read(data);
//向UI传输数据
//what为标识 obj为数据
hcline.SendMessage(hcline.obtrinMessage(what:23,len,-1,obj:data));
//判断输出流是否为空 不为空则发送小段数据作为心跳包 用于保持连接
if(output!=null)
{
output.write(24);
output.flush();
}
}
}
}
catch(Eception e)
{
e.printStrak();}
}