5.29日(rì)音(yīn)訊,手機(≈≈jī)與PC實現(xiàn)通(tōng)信功能(néng)
日(rì)期:2013-05-29發布:首創網絡浏覽:673次
5.29日(rì)音(yīn)訊,手機(jī)與PC實現(→✔xiàn)通(tōng)信功能(néng)。終端持續掃描AP信息并發送給λ☆↔服務器(qì)端的(de)實現(xiàn)。γ✔首先基于TCP協議(yì)在Android終端和(hé)PC兩端之間(₹§✘jiān)形成網絡虛拟鏈路(lù)。使用(ελyòng)ServerSocket創建TCP服務器(qì)端,然後在An÷ δ droid客戶端使用(yòng)Socket的(de)·✘✔↓··
本文(wén)關鍵字:5.29日(rì)↑♥,音(yīn)訊,手機(jī),與,實現(xiàn),通←×(tōng)信,功能(néng),5.29日(rì♠δ→),
5.29日(rì)音(yīn)訊,手機(jī)與PC實現(xiàn®δ)通(tōng)信功能(néng)。終端持續掃描AP信↕₽λ'息并發送給服務器(qì)端的(de)實現(xiàn)。<↕ 首先基于TCP協議(yì)在Android終端和(hé)PC兩端之間₽©←(jiān)形成網絡虛拟鏈路(lù)。使用(yòng)ServerSoδ•cket創建TCP服務器(qì)端,然後在Android客≤€≤€戶端使用(yòng)Socket的(de)構造器(qì)來(lái)連接∑♣₩€服務器(qì)。其中Android終端通(tōng≈α)過WIFI連接和(hé)PC處于同一(yī)局域網。
1.PC服務器(qì)啓用(yòng)ServerSock∞←♣et
兩個(gè)通(tōng)信實體(tǐ)在建立虛拟鏈路(lù)之前,需∑✔要(yào)有(yǒu)一(yī)方先準備好(hǎo),主動<<↑接受來(lái)自(zì)其他(tā)通(tōng)信≤₽¥實體(tǐ)的(de)連接請(qǐng)求。
使用(yòng)ServerSocket對(duì)↓✔象監聽(tīng)來(lái)自(zì)客✘÷戶端的(de)Socket連接。
[plain]//創建ServerSocket對(duì)象
ServerSocketss=newServer§αSocket(30000);
//監聽(tīng)來(lái)自(zì)客戶端的(de↔←™)請(qǐng)求
while(true){
Sockets=ss.accept();
…
}
//創建ServerSocket對(duì)象
ServerSocketss=newServerSocket(3$Ω♦0000);
//監聽(tīng)來(lái)自(zì)客戶端的(de)請($♣qǐng)求
while(true){
Sockets=ss.accept();
…
}
如(rú)果沒有(yǒu)連接,則将一(yī)直 &✔處于等待狀态。當接收到(dào)連接請(qǐng)求後,獲取消息到(dào)₹δ輸入流,并保存到(dào)文(wén)件(jiàn)。
[plain]/接收客戶端消息
BufferedReaderin=newB&☆∏€ufferedReader(newInputS★§↑treamReader(client.getInputStream()));ε±
Stringstr;
BufferedWriterbw=newBufferedWriter±∞♣(newFileWriter("D:/ApInfo"+(i++)+".t'↕π≥xt"));
while((str=in.readLine())!=null){♠®™÷
System.out.printl>₹£δn(str);
bw.write(str);
bw.newLine();
}
//接收客戶端消息
BufferedReaderin=newBufferedRea ±der(newInputStreamReader(ε$client.getInputStream()))₽©☆ ;
Stringstr;
BufferedWriterbw=ne' ≤wBufferedWriter(newFileWriter("D:/Aγ↔→pInfo"+(i++)+".txt"));
while((str=in.readLin∏π₽✘e())!=null){
System.out.println(str);
bw.write(str);
bw.newLine();
}
2.Android終端使用(yòng)Socket通(t¶πφōng)信
客戶端使用(yòng)Socket的(de)構造器(qì)®™∏連接服務器(qì),指定服務器(qì)IP和(hé)端口号就(jiù)可(kě≈$δ )以了(le)。
Sockets=newSocket(“1δ↓δ92.168.1.100”,30000);
這(zhè)樣服務器(qì)端的(de)accept()方"♦ ∏法就(jiù)得(de)到(dào)響應,從(có≠≈ng)而向下(xià)執行(xíng),服>β♠務器(qì)端和(hé)客戶端就(jiù)&≤形成了(le)一(yī)對(duì)互相(xiàng)βγ連接的(de)Socket。再進行(xín™"g)通(tōng)信時(shí)就(jiù)沒有φ☆σ→(yǒu)服務器(qì)和(hé)客戶端之分(≥→fēn)了(le),都(dōu)是(shì)通(tōng)Ω≈≠過輸入輸出流進行(xíng)通(tōng)信。
詳細步驟:
采用(yòng)Handler和(hé)TimerTask來(lá≈♥₩₹i)定時(shí)掃描AP信息并發送給服務器(qì)端。TimerT£✘ask規定了(le)到(dào)達指定的(de)時(shí)間(jiān)所δ✘'×要(yào)進行(xíng)的(de)任務。
[plain]TimerTasktask=newTimerTask(↓§↕₽){
publicvoidrun(){
Messagemessage=newMessage()∞&≤;
message.what=1;
handler.sendMessage(mess±↑©age);
}
};
TimerTasktask=newTimerTask(){
publicvoidrun(){
Messagemessage=newMessage();
message.what=1;
handler.sendMessage(β₹"↑message);
}
};
handler傳遞message內(nèi)♥容:
[plain]Handlerhandler=newHandler() ™Ωδ{
publicvoidhandleMessage(Mess←↓σ™agemsg){
switch(msg.what){
case1:
//執行(xíng)定時(shí)器(qì)時↕ (shí)間(jiān)到(dào)了(le)之後由handleε¶♠✔r傳遞的(de)任務
break;
}
super.handleMessage(msg);
}
};
Handlerhandler=newHandler(){
publicvoidhandleMessage(Messagemsg)≤★↔←{
switch(msg.what){
case1:
//執行(xíng)定時(shí)器(qì)時(shí)間(jiānγ )到(dào)了(le)之後由handler傳遞的(de)任≠™♠務
break;
}
super.handleMessage(msg);
}
};
接下(xià)來(lái)掃描AP♥ 信息并發送給服務器(qì)端,然後将結果保存。
[plain]WifiManagerwifiManager=(Wif±≤iManager)getSystemServ§εice(WIFI_SERVICE);
wifiManager.startScan();
mWifiList=wifiManager.getScan↑>✔↓Results();
WifiManagerwifiManager=(WifiMa&♥∑nager)getSystemService(WIFI_SERV≤♠ICE);
wifiManager.startScan();
mWifiList=wifiManager.get≠→ε₽ScanResults();
由WifiManager說(shuō)明(míng)可( ®€₩kě)知(zhī),它可(kě)以用(yòng)于處理(lǐ)已配置★的(de)網絡,當前連接的(de)網絡及A ÷←P信息的(de)掃描等情況。
向服務器(qì)發送消息:
[plain]socket=newSock€↓et("192.168.1.211",3000 ε€£0);
//向服務器(qì)端發送消息
PrintWriterout=ne ¥♥wPrintWriter(newBuffere>→dWriter(newOutputStre<→φamWriter(socket.getOutputStream())),tru♠♥e);
out.println(message);
socket=newSocket("19☆≤ 2.168.1.211",30000);
//向服務器(qì)端發送消息
PrintWriterout=new↕© PrintWriter(newBufferedWriter(newOutput™♣≠₩StreamWriter(socket.getOutputStream())∏♥ ),true);
out.println(message£πδ);
其中message為(wèi)獲取的(de)AP信息♦£,測試收到(dào)的(de)信息格式為£÷♣↔(wèi):
SSID:ICIS_LAB,BSSID:1c:af:f₽ε↑7:9a:65:e4,capabilities:[WPA-PSK-TKIP+C→÷✘"CMP],level:-80,frequency:243 ¶↑₹7
- 歡迎大(dà)家(jiā)閱讀(dú)浏覽,部分(fēn)內$♠ ★(nèi)容來(lái)源于網絡,如(rú)有(yΩ¶←ǒu)侵權,請(qǐng)聯系我們删除! ©>
- 上(shàng)一(yī)條:5.28日(rì)音(yīn)訊,網頁制(zhì)作(zuò)者需用(y£γòng)技(jì)術(shù)來(lái)升華自(zì)§♣→§己
- 下(xià)一(yī)條:5.29日(rì)音(yīn)訊,關于路(lù)由的(de)遞歸查詢
服務項目
熱(rè)門(mén)信息
- 邯鄲網絡公司:模闆建站(zhàn)的(deβ )好(hǎo)處有(yǒu)哪些(xiē)?
- 3642024-04-25

- 4.9日(rì)訊,企業(yè)網站(zhàn)建設如(rú)α &¥何發揮網絡營銷功能(néng)?
- 4092024-04-09

- 邯鄲網絡公司:網站(zhàn)建設開(kāi)發有(yǒu)哪些(xi€¶ē)細節需要(yào)注意?
- 5402024-03-07

- 邯鄲網絡公司:外(wài)貿網站(zhàn)制(zhì)作(zuò)的(de)&γ8個(gè)步驟
- 3772024-03-05

- 簡單3步,輕松做(zuò)企業(yè)官網
- 6822024-02-18
