androi通信——socket

来源:互联网 发布:addiction动作数据mmd 编辑:程序博客网 时间:2024/06/14 05:16

  3.Socekt

在连接时可以实现信息的主动推送,不必每次等客户端先向服务器发送请求。适合保持在线或者接收推送的应用

套接字,通信句柄,支持tcp/ip协议。五种必要的信息:协议,本机ip,本机端口,远地主机ip,远地主机端口

一个socket连接至少需要一对套接字:运行客户端clientsocket;服务端serverScoekt

有很多构造方法......

端口选择最好在1023之后。。。避免与系统端口发生冲突

通过getInoutStream() getOutputStream得到对应的输入,输出流,进行读写操作。在基本刘上建立过滤流:DataInputStream,DataOutputStream,PrintStrea,;文本方式:InputStreamWriter、OutputStreamWriter PrintWriter.

关闭socket:

    os.close();        is.close();        socket.close();

先关闭输出流,在关闭输入流流,最后关闭socket


客户端:

try{

    Socket socket = null;

    socket = new Socket("10.0.0.2",1820);//ip指模拟器访问主机

    BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

    writer.write(data);//data 为发送数据 String

    writer.flush();

    writer.close();

    socket.close();

}catch(Exception e){}


服务端:使用线程

try{    ​

    ​ServiceSocket serviceSocket = new serverSocket(1802);

    ​while(true) {

    ​    Socket client = serverSocket.accept();    ​//服务器开始监听客户端连接

        ​try{

            ​BufferReader in = new BufferReader(new InputStreamReader(client.getInputStream()));

    ​        String str = in.readLine();

        ​}catch(Exception e){}finally{    client.close()}

    ​}   

}catch(Exception e){}


原创粉丝点击