新闻资讯
记录首创点滴进步 见证远行
我们一直紧跟时代前沿,聚焦行业实时动态,发布公司最新资讯,欢迎您的关注
您目前的位置:网站首页 > 新闻资讯 > 网站常识 >

5.29日音讯,手机与PC实现通信功能

发布日期:2013-05-29文章来源:首创网络浏览次数:727次
    5.29日音讯,手机与PC实现通信功能。终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务......
    本文关键字:5.29日,音讯,手机,与,实现,通信,功能,5.29日,
  5.29日音讯,手机与PC实现通信功能。终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。其中Android终端通过WIFI连接和PC处于同一局域网。
  1.PC服务器启用ServerSocket
  两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求。
  使用ServerSocket对象监听来自客户端的Socket连接。
  [plain]//创建ServerSocket对象
  ServerSocketss=newServerSocket(30000);
  //监听来自客户端的请求
  while(true){
  Sockets=ss.accept();
  …
  }
  //创建ServerSocket对象
  ServerSocketss=newServerSocket(30000);
  //监听来自客户端的请求
  while(true){
  Sockets=ss.accept();
  …
  }
  如果没有连接,则将一直处于等待状态。当接收到连接请求后,获取消息到输入流,并保存到文件。
  [plain]/接收客户端消息
  BufferedReaderin=newBufferedReader(newInputStreamReader(client.getInputStream()));
  Stringstr;
  BufferedWriterbw=newBufferedWriter(newFileWriter("D:/ApInfo"+(i++)+".txt"));
  while((str=in.readLine())!=null){
  System.out.println(str);
  bw.write(str);
  bw.newLine();
  }
  //接收客户端消息
  BufferedReaderin=newBufferedReader(newInputStreamReader(client.getInputStream()));
  Stringstr;
  BufferedWriterbw=newBufferedWriter(newFileWriter("D:/ApInfo"+(i++)+".txt"));
  while((str=in.readLine())!=null){
  System.out.println(str);
  bw.write(str);
  bw.newLine();
  }
  2.Android终端使用Socket通信
  客户端使用Socket的构造器连接服务器,指定服务器IP和端口号就可以了。
  Sockets=newSocket(“192.168.1.100”,30000);
  这样服务器端的accept()方法就得到响应,从而向下执行,服务器端和客户端就形成了一对互相连接的Socket。再进行通信时就没有服务器和客户端之分了,都是通过输入输出流进行通信。
  详细步骤:
  采用Handler和TimerTask来定时扫描AP信息并发送给服务器端。TimerTask规定了到达指定的时间所要进行的任务。
  [plain]TimerTasktask=newTimerTask(){
  publicvoidrun(){
  Messagemessage=newMessage();
  message.what=1;
  handler.sendMessage(message);
  }
  };
  TimerTasktask=newTimerTask(){
  publicvoidrun(){
  Messagemessage=newMessage();
  message.what=1;
  handler.sendMessage(message);
  }
  };
  handler传递message内容:
  [plain]Handlerhandler=newHandler(){
  publicvoidhandleMessage(Messagemsg){
  switch(msg.what){
  case1:
  //执行定时器时间到了之后由handler传递的任务
  break;
  }
  super.handleMessage(msg);
  }
  };
  Handlerhandler=newHandler(){
  publicvoidhandleMessage(Messagemsg){
  switch(msg.what){
  case1:
  //执行定时器时间到了之后由handler传递的任务
  break;
  }
  super.handleMessage(msg);
  }
  };
  接下来扫描AP信息并发送给服务器端,然后将结果保存。
  [plain]WifiManagerwifiManager=(WifiManager)getSystemService(WIFI_SERVICE);
  wifiManager.startScan();
  mWifiList=wifiManager.getScanResults();
  WifiManagerwifiManager=(WifiManager)getSystemService(WIFI_SERVICE);
  wifiManager.startScan();
  mWifiList=wifiManager.getScanResults();
  由WifiManager说明可知,它可以用于处理已配置的网络,当前连接的网络及AP信息的扫描等情况。
  向服务器发送消息:
  [plain]socket=newSocket("192.168.1.211",30000);
  //向服务器端发送消息
  PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),true);
  out.println(message);
  socket=newSocket("192.168.1.211",30000);
  //向服务器端发送消息
  PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),true);
  out.println(message);
  其中message为获取的AP信息,测试收到的信息格式为:
  SSID:ICIS_LAB,BSSID:1c:af:f7:9a:65:e4,capabilities:[WPA-PSK-TKIP+CCMP],level:-80,frequency:2437
    本文由邯郸网络公司首创网络整理编辑发布,请勿转载、复制、摘抄等!

+ 查看更多我们的客户 / Our client

0310-4559740
400-990-1661
    24小时报务热线
    18931045623
在线客服
首创网络邯郸公司
邯郸公司
电话:0310-4559740 / 18931045623  地址:邯郸市丛台区颐高广场B座13层1304室