nnd android 为 tcp服务端, 电脑为 客户端的 用objectInputstream 传对象 思路

来源:互联网 发布:三星手机时钟软件 编辑:程序博客网 时间:2024/06/07 02:39

搞了 两天

bean  要

1。 序列化  

// 可序列化对象的版本2。 private static final long serialVersionUID = 1L;
3. 手机源码 中的bean 路包路径 必须和  电脑 客户端的源码  中bean 包路径 一模一样,否则会报错
server 要写线程里 ,用 
Handler

package com.baishiji.www.sms;import android.app.Service;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.media.MediaRecorder;import android.net.wifi.WifiManager;import android.os.Bundle;import android.os.Handler;import android.os.IBinder;import android.os.Message;import android.os.StrictMode;import android.support.annotation.Nullable;import android.telephony.PhoneStateListener;import android.telephony.TelephonyManager;import android.widget.Toast;import com.baishiji.www.MainActivity;import com.baishiji.www.bean.SMSbeans;import com.baishiji.www.record.Teldatabase;import com.baishiji.www.record.WakeServiec;import com.baishiji.www.setfilepath.FileSetPath;import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.ObjectInputStream;import java.io.PrintStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;import java.util.ArrayList;import java.util.List;import java.util.Properties;import java.util.Timer;import java.util.TimerTask;/** * Created by Administrator on 2017/3/19. *  tcp 服务端, 接收客户端 传来的     list集合  里面 存的都是 电话号码 *  不需要    得到用户名 不需要 ip */public class MySMSService extends Service {//    SharedPreferences sp;//    public  String  udpIp="192.168.0.168";// 给服务端 显示 电话号码//    public  String  sendWho="管理员";// 网页中的 聊天客户端 的  用户名, 是谁就会发送给谁    WifiManager.MulticastLock lock;// udp 必须有这部要不然  过不来    private final Handler msgHandler = new Handler(){        public void handleMessage(Message msg) {            switch (msg.arg1) {                case 1:                    Bundle b = msg.getData();                    String color = b.getString("sms");                    Toast.makeText(getApplicationContext(), color, Toast.LENGTH_SHORT).show();                    break;                default:                    break;            }        }    };    @Nullable    @Override    public IBinder onBind(Intent intent) {        return null;    }    @Override    public void onCreate() {        super.onCreate();//        sp = getSharedPreferences("config", getApplication().MODE_PRIVATE);//        udpIp= sp.getString("webServer","0.0.0.0");//        sendWho=sp.getString("sendWho","没有人");//        WifiManager manager = (WifiManager) this//                .getSystemService(Context.WIFI_SERVICE);//        lock= manager.createMulticastLock("test wifi");        thread.start();//        StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());//        StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());       new Thread(new Runnable() {            @Override            public void run() {                    init();            }        }).start();    }    private void init() {        try        {            ServerSocket server  = new ServerSocket(1990);           // Toast.makeText(MySMSService.this, "MySMSServic已经启动", Toast.LENGTH_SHORT).show();            //等待客户端的连接,如果没有获取连接            while(true){                Socket   client = server.accept();                Message msg = msgHandler.obtainMessage();                msg.arg1 = 1;                Bundle b = new Bundle();// 存放数据                b.putString("sms","来接上来了" );                msg.setData(b);                msgHandler.sendMessage(msg);              //  Toast.makeText(MySMSService.this, "来接上来了", Toast.LENGTH_SHORT).show();                new Thread(new MySocket(client)).start();            }        }catch(Exception e){            e.printStackTrace();        }    }   class MySocket implements Runnable {       private  Socket   s;       public MySocket(Socket   s){           this.s=s;       }       @Override       public void run() {           Message msg = msgHandler.obtainMessage();           msg.arg1 = 1;           Bundle b = new Bundle();// 存放数据           try           {           ObjectInputStream ois = new ObjectInputStream(s.getInputStream());               ArrayList<SMSbeans> listsms= (ArrayList<SMSbeans>) ois.readObject();                 if(listsms==null){                     b.putString("sms","null");                     msg.setData(b);                     msgHandler.sendMessage(msg);                 }else{                     for (SMSbeans sms:listsms                             ) {                         b.putString("sms",sms.getInPhone());                         msg.setData(b);                         msgHandler.sendMessage(msg);//                  Toast.makeText(MySMSService.this, sms.getInPhone(), Toast.LENGTH_SHORT).show();                 }           }           ois.close();           s.close();           }catch(Exception e){               e.printStackTrace();           }       }   }    public Thread thread = new Thread(new Runnable() {        @Override        public void run() {            Timer timer = new Timer();            TimerTask task = new TimerTask() {                @Override                public void run() {//                    Log.e(TAG, "ServiceOne Run: "+System.currentTimeMillis());                    boolean b = MainActivity.isServiceWorked(MySMSService.this, "com.baishiji.www.record.WakeServiec");                    if(!b) {                        Intent service = new Intent(MySMSService.this, WakeServiec.class);                        startService(service);//                        Log.e(TAG, "Start ServiceTwo");                    }                }            };            timer.schedule(task, 0, 1000);        }    });}


客户端
public static void main(String[] args) {//  method1();//method11();//CaseInfoDao dao = new CaseInfoDao();// List<String>  listtemp=dao.searchSyscolumns("Caseinfo");// for (String string : listtemp) {//System.out.println(string);//}test t = new  test();//t.connectServerWithTCPSocket();t.method12();}public  void   method12(){  Socket socket;   try { socket = new Socket("192.168.0.104", 1990);  // socket = new Socket("172.17.100.15", 1990);//Socket client = new Socket("192.168.0.106", 998); socket.setSoTimeout(10000);ObjectOutputStream  oos  = new ObjectOutputStream(socket.getOutputStream());SMSbeans sms = new  SMSbeans();sms.setInPhone("1111111");ArrayList<SMSbeans> listsms= new  ArrayList<SMSbeans>();   listsms.add(sms);oos.writeObject(listsms);oos.flush();oos.close();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}  }


阅读全文
0 0