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
- nnd android 为 tcp服务端, 电脑为 客户端的 用objectInputstream 传对象 思路
- 以Android端为客户端,servlet端为服务端的实时通讯——基础
- 以Android端为客户端,servlet端为服务端的实时通讯——登录注册
- Android 客户端与ssh 服务端通信 以对象的形式相互传 (一) 客户端向服务端发送对象
- Android 客户端与ssh 服务端通信 以对象的形式相互传 (二) 客户端从服务端请求对象
- 基于TCP的服务端/客户端
- Android上实现TCP&UDP的客户端和服务端
- Remoting实例(同为客户端服务端)
- VC++ UDP转TCP互发数据 UDP为服务端 TCP为客户端 可修改IP和端口最小化 2TCP/UDP中转
- XFIRE 客户端 传递参数是对象 传递参数的对象所在包路径必须和服务端包路径一样。不然就出现传递过去对象值为空。
- TCP的客户端和服务端通信
- linux的tcp服务端、客户端例子
- TCP中的服务端与客户端的实现
- TCP:客户端和服务端的使用实例
- TCP服务端和客户端的框架
- 模拟TCP传输的客户端和服务端
- 模拟TCP传输的客户端和服务端
- VC面向对象的方式 写一个基于TCP的 客户端服务端程序 (SOCKET)
- 安卓第三方登录之微信登录(图文详解)
- 集成butterknife最新版本8.6.0
- 代码函数的短小化
- python中数组(numpy.array)的基本操作
- spring MVC文件下载
- nnd android 为 tcp服务端, 电脑为 客户端的 用objectInputstream 传对象 思路
- AndroidStudio创建Kotlin项目需要配置文件一览
- ros:global_planner 整体解析 解释了全局规划的多种实现原因(挺有用)
- Android常用开源项目(三十八)
- idea 使用拦截器mvc:exclude-mapping 报红
- 百万级流量网站准备工作
- 第十一章 表示与描述
- ngrok 内网穿透
- java poi Excel单元格保护