码迷,mamicode.com
首页 > 移动开发 > 详细

Android中基于Socket的网络通信

时间:2015-08-27 15:07:15      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

1. Socket介绍

2. ServerSocket的建立与使用

3. 使用ServerSocket建立聊天服务器-1

4. 使用ServerSocket建立聊天服务器-2

5. 在Android中创建Socket客户端

------------------------------------------------------------------

1. Socket介绍

    Socket 又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求。ServerSocket 用于服务器端,Socket 是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个 Socket 实例,操作这个实例,完成所需的会话。

    对于一个网络连接来说,套接字是平等的,没有差别, 不会应用在服务器端或者客户端而产生不同级别。

    不管是Socket还是ServerSocket 他们的工作都是通过Socket类及其子类完成。

   * 基于TCP连接,数据传输有保障

   * 适于建立长时间的连接

   * 通常用于即时通信

 

2. ServerSocket的建立与使用

3. 使用ServerSocket建立聊天服务器-1

    3.1 建立Java工程: ServerSocketDemo

        * ChatSocket.java

public class ChatSocket extends Thread {

    Socket socket;

    public ChatSocket(Socket s) {
        socket = s;
    }

    public void out(String out) {
        try {
            socket.getOutputStream().write(out.getBytes("UTF-8"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void run() {
        int count = 0;
        while (true) {
            count++;
            out("loop : " + count + ", \t");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

}

    * ServerListener.java

public class ServerListener extends Thread {

    @Override
    public void run() {
        ServerSocket serverSocket;
        try {
            serverSocket = new ServerSocket(12345);
            while (true) {
                // 监听 12345端口
                Socket socket = serverSocket.accept();
                // 建立连接
                JOptionPane.showMessageDialog(null,
                        "There is an client access 12345 port");
                new ChatSocket(socket).start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

    * MyServerSocket.java

public class MyServerSocket {

    public static void main(String[] args) {
        new ServerListener().start();
    }

}

    3.2 管理员权限打开 CMD窗口: telnet localhost 12345

    技术分享

    技术分享

    两个线程互补影响

    技术分享

 

4. 使用ServerSocket建立聊天服务器-2

    3中的两个Client不能相互通信

   

 

5. 在Android中创建Socket客户端

    在Android中创建Socket客户端。使用Socket建立客户端链接,并且在AsyncTask中执行网络读写的任务,将用户输入的内容发送到服务器,并接收服务器发来的数据,显示到界面上。开启多个虚拟机模拟多人聊天效果。

    创建 Android项目:

 

Android中基于Socket的网络通信

标签:

原文地址:http://www.cnblogs.com/carlo/p/4763222.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!