《2022年Android客户端与PC服务器实现Socket通信 .pdf》由会员分享,可在线阅读,更多相关《2022年Android客户端与PC服务器实现Socket通信 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、lv 包包、古奇女包、coach 包:|兔毛皮草、獭兔皮草、皮草服饰: Android客户端与PC服务器实现Socket通信(wifi)本文介绍Android 终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在 Android 终端和 PC两端之间形成网络虚拟链路。使用ServerSocket 创建 TCP服务器端,然后在 Android 客户端使用Socket的构造器来连接服务器。其中 Android 终端通过WIFI 连接和 PC处于同一局域网。1.PC服务器启用ServerSocket 两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求。
2、使用 ServerSocket对象监听来自客户端的Socket 连接/创建 ServerSocket对象ServerSocket ss=new ServerSocket(30000);/监听来自客户端的请求while(true)Socket s=ss.accept();如果没有连接,则将一直处于等待状态。当接收到连接请求后,获取消息到输入流,并保存到文件。/接收客户端消息BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream();String str;BufferedWriter bw=n
3、ew BufferedWriter(new FileWriter(D:/ApInfo+(i+)+.txt);while(str=in.readLine()!=null)System.out.println(str);bw.write(str);bw.newLine();2.Android 终端使用 Socket通信客户端使用Socket 的构造器连接服务器,指定服务器IP和端口号就可以了。Socket s=new Socket(“192.168.1.100”,30000);这样服务器端的accept()方法就得到响应,从而向下执行,服务器端和客户端就形成了一对互相连接的Socket。再进行通信
4、时就没有服务器和客户端之分了,都是通过输入输出流进行通信。详细步骤采用 Handler 和 TimerTask 来定时扫描AP信息并发送给服务器端。TimerTask 规定了到达指定的时间所要进行的任务。TimerTask task=new TimerTask()名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -lv 包包、古奇女包、coach 包:|兔毛皮草、獭兔皮草、皮草服饰: public void run()Message message=new Message();message.what=1;handler.sendMessage(message);handl
5、er 传递 message内容:Handler handler=new Handler()public void handleMessage(Message msg)switch(msg.what)case 1:/执行定时器时间到了之后由handler 传递的任务break;super.handleMessage(msg);因为需要持续执行扫描任务,所以启用新线程执行定时任务/启动单独线程定时向服务器发送AP信息new Thread()Override public void run()/TODO Auto-generated method stub timer.schedule(task,2
6、000,10000);/在 2 秒后每 10 秒执行一次定时器中的方法.start();接下来扫描AP 信息并发送给服务器端,然后将结果保存。WifiManager wifiManager=(WifiManager)getSystemService(WIFI_SERVICE);wifiManager.startScan();mWifiList=wifiManager.getScanResults();由 WifiManager 说明可知,它可以用于处理已配置的网络,当前连接的网络及AP 信息的扫描等情况。This class provides the primary API for manag
7、ing all aspects of Wi-Fi connectivity.Get an instance of this class by calling Context.getSystemService(Context.WIFI_SERVICE).It deals with several 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -lv 包包、古奇女包、coach 包:|兔毛皮草、獭兔皮草、皮草服饰: categories of items:The list of configured networks.The list can be viewed and u
8、pdated,and attributes of individual entries can be modified.The currently active Wi-Fi network,if any.Connectivity can be established or torn down,and dynamic information about the state of the network can be queried.Results of access point scans,containing enough information to make decisions about
9、 what access point to connect to.It defines the names of various Intent actions that are broadcast upon any sort of change in Wi-Fi state.向服务器发送消息:socket=new Socket(192.168.1.211,30000);/向服务器端发送消息PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(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 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 3 页 -