`

android socket

阅读更多

server:

package com.socket;




import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**1.服务器程序:
 * com Server
 * 
 * @author hechuan
 * @version 1.0
 */
public class Main {

    private static final int PORT = 9999;// 端口监听
    private List<Socket> mList = new ArrayList<Socket>();// 存放客户端socket
    private ServerSocket server = null;
    private ExecutorService mExecutorService = null;// 线程池

    /**
     * @param args
     */
    public static void main(String[] args) {
        new Main();
    }

    public Main() {
        try {
            server = new ServerSocket(PORT);
            mExecutorService = Executors.newCachedThreadPool();// 创建一个线程池
            System.out.println("Server Start...");
            Socket client = null;
            while (true) {
                client = server.accept();
                mList.add(client);
                mExecutorService.execute(new Service(client));// 开启一个客户端线程.
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public class Service implements Runnable {

        private Socket socket;
        private BufferedReader in = null;
        private String msg = "";

        public Service(Socket socket) {
            this.socket = socket;
            try {
                in = new BufferedReader(new InputStreamReader(socket
                        .getInputStream()));
                msg = "user:" + this.socket.getInetAddress() + " time "+DateTime.getTimeLocal("s")+" come total:"
                        + mList.size();
                this.sendmsg();
            } catch (IOException e) {
                System.out.println(e.getLocalizedMessage());
            }
        }

        public void run() {
            try {
                while (true) {
                    if ((msg = in.readLine()) != null) {
                        if (msg.equals("exit")) {
                            mList.remove(socket);
                            in.close();
                            msg = "user:" + socket.getInetAddress()
                                    + " exit total:" + mList.size();
                            socket.close();
                            this.sendmsg();
                            break;
                        } else {
                            msg = socket.getInetAddress() + " : " + new String(msg.getBytes(),"UTF-8");
                            this.sendmsg();
                        }
                    }

                }
            } catch (Exception ex) {
                //add by hechuan begin
                mList.remove(socket);
                //add by hechuan end
                System.out.println("server 读取数据异常");
            }
        }

        /**
         * 发送消息给所有客户端
         */
        public void sendmsg() {
            System.out.println(msg);
            int num = mList.size();
            for (int i = 0; i < num; i++) {
                Socket mSocket = mList.get(i);
                PrintWriter pout = null;
                try {
                    pout = new PrintWriter(new BufferedWriter(
                            new OutputStreamWriter(mSocket.getOutputStream())),
                            true);
                    pout.println(msg);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

0
0
分享到:
评论
1 楼 chq32 2011-02-17  
急,android能当服务端吗

相关推荐

    Android-Lemon一个简单轻量级的AndroidSocket框架

    **Android-Lemon:轻量级Android Socket框架详解** 在Android应用开发中,网络通信是必不可少的一部分,而Socket通信则是实现客户端与服务器间低层次、高效能数据交换的重要手段。`Android-Lemon`是一个专为Android...

    Android Socket编程客户端服务器端源码

    在Android开发中,Socket编程是实现设备间通信的重要手段,特别是在构建网络应用时。本教程将深入探讨Android Socket编程的基本概念、客户端与服务器端的实现以及相关源码解析。 一、Socket基本概念 Socket,也被...

    Android socket即时通信

    在这个场景中,"Android socket即时通信"涉及到在Android设备上创建Socket客户端,以及在电脑端实现Socket服务器,实现跨平台的通信。 首先,我们来深入理解Socket。Socket是网络编程的基本组件,它提供了进程间...

    Android Socket 服务端实现

    在Android平台上,Socket服务端的实现是通过Java的Socket编程接口来完成的,因为Android是基于Java的。本文将深入探讨如何在Android设备上构建一个Socket服务器,以便它能够接收客户端的消息,同时支持向特定客户端...

    android socket 点对点文件传输mode

    在Android平台上,Socket是实现点对点文件传输的基础工具,它允许两个设备通过网络进行通信。"Android Socket 点对点文件传输Mode"通常指的是利用Socket编程实现Android设备间的文件共享。在这个过程中,一个设备...

    android socket 编程实例

    在Android平台上进行网络通信时,Socket编程是一种常见且重要的技术,它允许设备通过TCP或UDP协议与其他设备或服务器进行双向数据传输。在这个实例中,我们将深入探讨如何在Android客户端和Java服务器端实现Socket...

    android socket实时传输到服务端

    标题“android socket实时传输到服务端”揭示了这个过程的核心技术:通过Socket协议将Android设备上的摄像头数据发送到远程服务器。描述中提到的“服务器支持查看”,意味着服务器端需要接收并处理这些数据,以便...

    Android Socket调试助手教程及源码

    【Android Socket调试助手教程及源码】 Android Socket调试助手是一个实用工具,用于帮助开发者在Android平台上进行网络通信的调试工作,特别是涉及TCP/IP协议的Socket编程。它通过创建和管理Socket连接,允许...

    Android socket demo.zip

    在Android平台上,Socket编程是一种常见的通信方式,常用于设备间的局域网通信。这个"Android socket demo.zip"压缩包提供了一个简单的示例,包含了客户端(Client)和服务器端(Server)两个应用程序,帮助开发者...

    android socket传文件

    在Android平台上,Socket通信是一种常见的数据传输方式,尤其在设备间需要进行文件传输时。本文将深入探讨如何使用Android Socket实现文件的传输,并特别关注如何自动配置Server端(S端)的IP地址。 首先,理解...

    Android Socket服务器客户端编程

    在Android平台上进行网络通信时,Socket是一个非常重要的工具,它提供了低级别的、基于连接的、双向通信的网络接口。在本教程中,我们将探讨如何在Android应用中实现Socket服务器和客户端的功能,通过...

    Android socket demo先发送后接受

    在Android开发中,Socket通信是一种常见的网络编程方式,它允许设备与服务器之间进行双向数据传输。在这个特定的"Android socket demo"中,我们看到的主要功能是先发送JSON格式的数据到服务端,然后接收服务端处理后...

    Android Socket通信 PC与安卓 安卓与安卓都有

    在Android平台上,Socket通信是一种常见的网络编程方式,用于设备间的数据传输。Socket是TCP/IP协议族的一部分,提供了双向通信通道,允许两个应用通过网络进行数据交换。本代码资源包括了Android设备与个人计算机...

    Android SOCKET开发的网络摄像头程序

    采用Android SOCKET开发的网络摄像头程序,接收网络传输过来的字节图片信息然后采用sufaceView实时显示

    Android socket 学习记录 client端源码

    在Android开发中,Socket通信是实现设备间数据传输的重要手段,尤其在客户端(Client)与服务器端(Server)交互的应用场景下。本篇将详细解析`Android socket 学习记录 client端源码`中的关键知识点,帮助你深入...

    android socket通信客户端服务器源代码

    在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在客户端-服务器架构的应用中。本文将深入探讨如何使用Android Socket实现客户端与服务器之间的通信,包括基本概念、步骤以及源码解析。 ...

    AndroidSocket_android_服务器_

    在Android平台上进行网络编程时,Socket通信是一种常见且重要的技术,它允许设备间进行双向通信。本示例主要探讨如何在Android中实现一个简单的Socket服务器,以便与其他Android客户端或者任何支持Socket通信的设备...

    Android Socket案例包括客户端和服务端

    在Android开发中,Socket通信是实现设备间数据传输的重要手段,尤其在构建移动应用与服务器交互的场景下。本案例提供了完整的Android Socket客户端和服务端实现,解决了常见的bug问题,使得开发者能够更顺利地进行...

    Android Socket编程源码(与PC通讯)

    在Android开发中,Socket编程是实现设备间通信的重要手段,特别是在需要与个人计算机(PC)进行数据交互时。本教程将深入探讨如何使用Android Socket编程实现Android设备与PC之间的通讯。 首先,我们要理解Socket的...

    Android Socket连接(心跳检测,断线重连,状态监测等)

    Android Socket连接,包含心跳检测,断线重连,数据发送等等 博客地址:http://blog.csdn.net/yuzhiqiang_1993/article/details/78094909

Global site tag (gtag.js) - Google Analytics