zoukankan      html  css  js  c++  java
  • Android中Socket通讯类

    public class SocketClient
    {
        public boolean mClientFlag = false;
        private static Socket client;
        
        
        public SocketClient()
        {
            Log.d("WineStock", "WineStock SocketClient()");
            client = new Socket();
        }
        
        
        public SocketClient(String HostName, int iPort)
        {
            client=new Socket();
            SocketAddress socketAddress = new InetSocketAddress(HostName, iPort);
            try
            {
                Log.d("WineStock", "WineStock SocketClient connect");
                client.connect(socketAddress, 3000);
            }
            catch (IOException e) {
                // TODO Auto-generated catch block
                Log.d("WineStock", "WineStock SocketClient IOException");
               
            } catch (IllegalArgumentException e1) {
                // TODO: handle exception
                Log.d("WineStock", "WineStock SocketClient IllegalArgumentException ");
              
            }
            
            return ;
        }
        
        public boolean SocketConnect(String HostName, int iPort)
        {
            
            SocketAddress socketAddress = new InetSocketAddress(HostName, iPort);
            try
            {
                Log.d("WineStock", "WineStock SocketConnect connect ");
                
                client.connect(socketAddress, 3000);
            }
            catch (IOException e) {
                // TODO Auto-generated catch block
                Log.d("WineStock", "WineStock SocketConnect IOException ");
               
            } catch (IllegalArgumentException e1) {
                // TODO: handle exception
                Log.d("WineStock", "WineStock SocketConnect IllegalArgumentException ");
               
            }
            
            return true;
        }
        
        public void SocketClose()
        {
            try {
                client.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                Log.d("WineStock", "socket close error"+e.getMessage());
            }
            
        }
        
        // 建立连接
        public static boolean SClient(SocketSendModel SendModel) throws UnknownHostException, IOException
        {
            boolean bRet = false;
            try
            {
                if(client.isConnected())

                {

                    //发送请求

                    sendMessage(SendModel);
                    bRet    =    true;
                }
            }
            catch (UnknownHostException e)
            {
                 Log.d("WineStock", "socket SClienterror"+e.getMessage());
            }
            catch (IOException e1)
            {
                 Log.d("WineStock", "socket SClienterror"+e.getMessage());
            }
            
            return bRet;
            
            
        }
        // 发送请求
        private static void sendMessage(SocketSendModel model) throws IOException
        {
            //boolean bRet = false;
            try
            {
                PrintWriter out = new PrintWriter(client.getOutputStream());
                out.print(objToJsonString(model).replace("\n", " "));
                out.flush();
                //bRet = true;
            }
            catch (IOException e)
            {
                
            }
            
            return;
        }
        
        
        // 接收服务器数据
        public static String readMessage() throws IOException
        {
            String str    =    "";
            try
            {
                BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
                str    =    br.readLine().replace("{", "").replace("}", "").replace("\"", "");
            }
            catch ( IOException e)
            {
                
            }
            
            return str;
            
        }
        // 将Java Object对象转换为Json对象
        private  static String objToJsonString(Object obj) {
            // 初始化返回值
            String json = "str_empty";
            if (obj == null) {
                return json;
            }
            StringBuilder buff = new StringBuilder();
            Field fields[] = obj.getClass().getFields();
            try {
                buff.append("[");
                buff.append("{");
                int i = 0;
                for (Field field : fields) {
                    if (i != 0) {
                        buff.append(",");
                    }
                    buff.append(field.getName());
                    buff.append(":");
                    buff.append("\"");
                    buff.append(field.get(obj) == null ? "" : field.get(obj));
                    buff.append("\"");
                    i++;
                }
                buff.append("}");
                buff.append("]");
                json = buff.toString();
            } catch (Exception e) {
                throw new RuntimeException("cause:" + e.toString());
            }
            return json;

        }

    }


  • 相关阅读:
    年轻人的第一个 Spring Boot 应用,太爽了!
    面试问我 Java 逃逸分析,瞬间被秒杀了。。
    Spring Boot 配置文件 bootstrap vs application 到底有什么区别?
    坑爹的 Java 可变参数,把我整得够惨。。
    6月来了,Java还是第一!
    Eclipse 最常用的 10 组快捷键,个个牛逼!
    Spring Cloud Eureka 自我保护机制实战分析
    今天是 Java 诞生日,Java 24 岁了!
    厉害了,Dubbo 正式毕业!
    Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2426883.html
Copyright © 2011-2022 走看看