怎麼寫服務器端
Android客戶端與PC服務器實現Socket通信(wifi)本文介紹Android終端持續掃描AP信息併發送給服務器端的實現。
首先基於TCP協議在Android終端和PC兩端之間形成網絡虛擬鏈路。使用ServerSocket創建TCP服務器端,然後在Android客戶端使用Socket的構造器來連接服務器。
其中Android終端通過WIFI連接和PC處於同一局域網。1. PC服務器啓用ServerSocket兩個通信實體在建立虛擬鏈路之前,需要有一方先準備好,主動接受來自其他通信實體的連接請求。
使用ServerSocket對象監聽來自客戶端的Socket連接//創建ServerSocket對象//by wayne from /dwayne/ServerSocket ss = new ServerSocket(30000);//監聽來自客戶端的請求while(true){Socket s = ss.accept();…}如果沒有連接,則將一直處於等待狀態。當接收到連接請求後,獲取消息到輸入流,並保存到文件。
//接收客戶端消息//by wayne from /dwayne/BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));String str;BufferedWriter bw = new 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。
再進行通信時就沒有服務器和客戶端之分了,都是通過輸入輸出流進行通信。詳細步驟採用Handler和TimerTask來定時掃描AP信息併發送給服務器端。
TimerTask規定了到達指定的時間所要進行的任務。TimerTask task = new TimerTask(){public void run() {Message message = new Message();message.what = 1;handler.sendMessage(message);}};handler傳遞message內容:Handler handler = new Handler(){public void handleMessage(Message msg) {switch (msg.what) {case 1:// 執行定時器時間到了之後由handler傳遞的任務break;}super.handleMessage(msg);}};因爲需要持續執行掃描任務,所以啓用新線程執行定時任務//啓動單獨線程定時向服務器發送AP信息//by wayne from /dwaynenew Thread(){@Overridepublic void run() {// TODO Auto-generated method stubtimer.schedule(task, 2000,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 managing all aspects of Wi-Fi connectivity. Get an instance of this class by calling Context.getSystemService(Context.WIFI_SERVICE). It deals with several categories of items:The list of configured networks. The list can be viewed and updated, 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 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: 2。
-
教育法規定學生的權利
法律主觀:根據《教育法》第四十三條的規定,受教育者享有下列權利:(一)參加教育教學計劃安排的各種活動,使用教育教學設施、設備、圖書資料;(二)按照國家有關規定獲得獎學金、貸學金、助學金;(三)在學業成績和品行上獲得公正評價,完成規定的學業後獲得相應的學業證書、學位證...
-
栽種夾竹桃注意事項介紹
1、光溫處理。夾竹桃是一種喜陽植物,在生長期間最好是放在陽光充足的位置處,如果處於廕庇處,會導致花色變淡,冬季適合要做好防寒措施,溫度低於0℃適合則要移到室內,溫度過高要進行降溫處理,以利於植株的開花。2、合理澆水。合理澆水是夾竹桃的養殖方法和注意事項之一,...
-
關於讀書朱熹的名言有哪些
1、讀書之法,在循序而漸進,熟讀而精。2、讀書有三到,謂心到,眼到,口到。3、立身以立學爲先,立學以讀書爲本。4、爲學之道,莫先於窮理;窮理之要,必先於讀書。5、讀書無疑者,須教有疑,有疑者,卻要無疑,到這裏方是長進。6、讀書譬如飲食,從容咀嚼,其味必長;大嚼大咀,終不知味也。...
-
補辦國有土地使用證的步驟
國有土地使用證補辦的申請流程和審查標準:申請人需提供書面申請和土地登記申請書,個人需提供身份證複印件,單位需提供法人身份證明、委託書、工商營業執照等材料。審查標準包括補證事實依據清楚合法,符合登記要求。土地登記中心經辦人員進行初審,符合標準的提出同意...