Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Android tanfolyam 4. alkalom – Hálózat Kezelés. Alapok – DNS/IP DNS • Hierechikus fa. • Hálózatba kötött gépekhez rendel szöveges azonosítót. IP • IPv4:

Hasonló előadás


Az előadások a következő témára: "Android tanfolyam 4. alkalom – Hálózat Kezelés. Alapok – DNS/IP DNS • Hierechikus fa. • Hálózatba kötött gépekhez rendel szöveges azonosítót. IP • IPv4:"— Előadás másolata:

1 Android tanfolyam 4. alkalom – Hálózat Kezelés

2 Alapok – DNS/IP DNS • Hierechikus fa. • Hálózatba kötött gépekhez rendel szöveges azonosítót. IP • IPv4: • IPv6: 2001:738:2001:2078:0:208:88:0 • url: https://trash.sch.bme.hu:8080https://trash.sch.bme.hu:8080

3 Alapok – UDP 1/ | Forrás | Cél| | Port | Port| | |Ellenőrző összeg | | Hossz | | | | Adat … |

4 Alapok – UDP 2/2 Tulajdonságai: • Port alapú ( ) • Nincs garantált csomag kézbesítés! • Gyors. (Nincs protokoll overhead) Gyakorlati példa: • Média lejátszás hálózaton keresztül (YouTube) • telnet • ICMP

5 Alapok – TCP 1/ | Source Port | Destination Port | | Sequence Number | | Acknowledgment Number | | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | | Checksum | Urgent Pointer | | Options | Padding | | data |

6 Alapok – TCP 2/3 Tulajdonságai: • Port alapú ( ) • Biztosítja a csomag megérkezését. • Összerakja a csomagot. • Az UDP-nél lassabb. Minden elküldött csomagot n-szer újra küld ha nem érkezik rá válasz. Gyakorlati alkalmazás: • HTTP(S) / SSH /LDAP / DNS (Ez lehet UDP is) /STB

7 Alapok – TCP 3/3

8 Java példa program (kliens) //kapcsolat felépítése: try { socketClient = new Socket(ip, 8180); sout = new PrintWriter(socketClient.getOutputStream(), true); sin = new BufferedReader(new InputStreamReader(socketClient.getInputStream())); } catch (Exception e) { // TODO: Exception Handling } //Üzenet küldése: sout.println(”Hello World!”); //Kapcsolat lezárása // TODO: Connection close.

9 Java példa program (szerver) //szerveren prot nyitás: try { server = new ServerSocket(8180); socketClient = server.accept(); sout = new PrintWriter(socketClient.getOutputStream(), true); sin = new BufferedReader(new InputStreamReader(socketClient.getInputStream())); } catch (Exception e) { // TODO: Exception Handling } // Üzenet fogadása: s = sin.readLine(); System.out.println(s); //Kapcsolat lezárása // TODO: Connection close.

10 Egy kis kitérés, szál kezelés Az Android nem engedi futni a programot, ha hálózati kommunikáció van a fő szálban! Két megoldás: • Runnable (Java) – Leszármaztatunk a Runnable osztályból – A.run metódust definiáljuk felül – A szálat a.start() metódussal indítjuk nem a run()-nal! • AsyncTask (Android) – Leszármaztatunk az AsyncTask osztályból – A doInBackground(Params…) metódust felül kell definiálnunk hogy menjen – Hamarosan lesz róla több szó…

11 Java példa Szál indítására Thread t=new Thread(new Runnable() { public void run() { while(true) { System.out.printl(”Ezt addig írom ki, amíg le nem lösz!”) } }); t.start();

12 UI Thread blokkolása  Nem szerencsés  User-t zavarja  Rendszer kilőheti az appot (ANR)  Hálózati kommunikáció nem megengedett  Többféle megoldás  Runnable – runOnUIThread  AsyncTask

13 AsyncTask  Automatikusan kezeli a szálváltást  Saját osztályt kell belőle származtatni  Meg van a saját életciklusa  doInBackground  Háttérben fut  OnPostExecute  UI Thread-en fut

14 AsyncTask private class SendTask extends AsyncTask protected Void doInBackground(String... texts) { HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(SERVER_ADDRESS); try { List params = new ArrayList (); params.add(new BasicNameValuePair("text", texts[0])); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse response = httpClient.execute(httpPost); } catch (Exception e) { e.printStackTrace(); } return null; } Futtatás: new SendTask().execute(new String[] { param });

15 HTTP kommunikáció Androidon  HttpClient-en keresztűl  HttpPost/HttpGet objektum használatával  HttpClient execute metódusának meghívása

16 HttpPost HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(SERVER_ADDRESS); try { List params = new ArrayList (); params.add(new BasicNameValuePair("text", texts[0])); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse response = httpClient.execute(httpPost); } catch (Exception e) { e.printStackTrace(); }


Letölteni ppt "Android tanfolyam 4. alkalom – Hálózat Kezelés. Alapok – DNS/IP DNS • Hierechikus fa. • Hálózatba kötött gépekhez rendel szöveges azonosítót. IP • IPv4:"

Hasonló előadás


Google Hirdetések