Bluetooth Development

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Bluetooth Development"

Transcript

1 Bluetooth Development Ing. Alessandro Di Nepi COMLAB DEA Università ROMA TRE Agenda Introduzione Ciclo di sviluppo Strumenti di supporto Ambienti di sviluppo Esempi: RFCOMM sotto Linux. L2CAP sotto Windows. OBEX in Java 1

2 Riferimenti Standard Bluetooth (http://( Bluetooth Designer (http://( Bluez (http://www.bluez.org/( MSDN (http://msdn.microsoft.com( Java: SUN Developer Network (http://developers.sun.com/( JavaBluetooth (http://( Introduzione Bluetooth nasce nel 1998 da un consorzio Ericsson, IBM, Intel, Nokia and Toshiba. tra Standard aperto per trasmissioni via radio a corto raggio di voce o dati sia per applicazioni punto- punto che multipunto. Ad oggi ci sono più di 1100 compagnie che lo adottano Il nome ed il logo sono ispirati ad Harald Blåtand (tradotto Blue Tooth), re di Danimarca tra 940 ed il 985, che ha unito la Danimarca e la Norvegia ed ha portato il Cristianesimo in Scandinavia. 2

3 Caratteristiche Tecnologia radio a bassa potenza e portata limitata nella banda 2.4GHz (ISM) Banda ISM regolata ma non soggetta a licensa. Supporto per voce e dati: velocità fino a kbit/s (1.2) e 2.1Mbit/s (2.0). Non c èc bisogno che i dispositivi siano in vista. Supporto alla sicurezza Economicità dei dispositivi. Grandissima penetrazione nel mercato. Applicazioni Sistema cable replacement : Scambio dati via seriale (vcard, file, messaggi). Collegamento di modem cellulari (internet, LAN). Collegamento di tastiere, mouse, stampanti. Applicazioni Audio: Sistemi handsfree (auricolari, autoradio, etc.). Medicali: Cartella medica wireless, consultazione remota, defibrillatori ZOLL, data collecting, etc.). Limitate dalla fantasia del progettista e dall interpretazione non corretta delle specifiche. 3

4 Tecnologie Radio Ciclo di sviluppo SI Specifiche Differente Tecnologia NO Cambio SPECS? NO Bluetooth OK? SI Progettazione Realizzazione Prototipo Produzione 4

5 Ciclo di sviluppo: Specifiche Fase fondamentale molte volte sottovalutata. Alla fine di questa fase deve essere chiaro perchè Bluetooth è la tecnologia giusta per l applicazione l in esame. Fattori che influenzano: Portata; Potenza irradiata; Energia (batterie); Numero di dispositivi; Tipo di dati e relativo timing (latenza, data rate, etc.) Ciclo di sviluppo: Progettazione Si passa dall idea ad una sua realizzazione su carta : come realizziamo le specifiche con la tecnologia scelta. Fattori chiave: Scelta dell hardware Scelta della classe del dispositivo Scelta del profilo da implementare Scelta dell alimentazione (se necessario) Sicurezza del sistema 5

6 Scelta dell HW Dispositivi HW: PC Laptop Tablet Palmari Cellulari Embedded Classe dei dispositivi Bluetooth Condiziona sia la portata che il consumo Class Power (mw) Power (dbm) Range (m) Class ~100 Class ~10 Class ~

7 Bluetoot Profiles Per favorire la comunicazione fra dispositivi eterogenei lo standard prevede la definizione dei profiles: Specificano come utilizzare la tecnologia Bluetooth nella specifica classe di dispositivi per realizzare un applicazione. Per comunicare i diversi dispositivi devono supportare lo stesso profilo. Protocolli Applicazioni Profili Scelta del profilo Generic Access Profile (GAP) Service Discovery Application Profile (SDAP) Serial Port Profile (SPP) Dial-up Networking Profile (DUNP) Fax Profile Headset Profile LAN Access Profile (using PPP) (LAP) Generic Object Exchange Profile (GOEP) File Transfer Profile Object Push Profile Synchronization Profile 7

8 Headset profile AT Commands RFCOMM L2CAP LMP Audio Stream ACL SCO Bluetooth Baseband LAN access point profile PPP RFCOMM L2CAP LMP ACL SCO Bluetooth Baseband 8

9 Strumenti di supporto Non sono funzionali alla progettazione ma sono utili in fase di sviluppo. Mettono a disposizione delle primitive base per: Individuare dispositivi bluetooth (inquire) Pairing dei dispositivi Connessione Autenticazione Lista dei servizi Scambio Dati Disponibile da shell dei comandi ed interfaccia grafica. Strumenti di supporto in BlueZ (1) BlueZ implementa lo standard Bluetooth in Linux. hcitool fornisce una serie di strumenti: Controllo dei dispositivi locali: # hcitool dev Devices: hci0 00:01:02:03:04:05 Scansione dei dispositivi remoti: # hcitool scan Scanning... 00:0A:0B:0C:0D:0E BT_device 9

10 Strumenti di supporto in BlueZ (2) Interrogazione dei dispositivi remoti: # hcitool inq Inquiring... 00:0A:0B:0C:0D:0E clock offset: 0x5579 class: 0x72010c Eseguire l2ping: # l2ping 00:0A:0B:0C:0D:0E Ping: 00:0A:0B:0C:0D:0E from 00:01:02:03:04:05 (data size 20) bytes from 00:0A:0B:0C:0D:0E id 200 time 69.85ms 20 bytes from 00:0A:0B:0C:0D:0E id 201 time 9.97ms 20 bytes from 00:0A:0B:0C:0D:0E id 202 time 56.86ms 20 bytes from 00:0A:0B:0C:0D:0E id 203 time 39.92ms 4 sent, 4 received, 0% loss Radio Frequency Communication (RFCOMM) Si può stabilire una radio frequency connection con un altro dispositivo Bluetooth usando il comando rfcomm. È possibile configurare il comportamento di rfcomm attraverso il file /etc/bluetooth/rfcomm.conf. Stabilire una connessione RFCOMM (active): # rfcomm connect 0 00:0A:0B:0C:0D:0E 1 Connected /dev/rfcomm0 to 00:0F:DE:69:50:24 on channel 1 Press CTRL-C C for hangup Stabilire una connessione RFCOMM (passive): # rfcomm listen 0 1 Waiting for connection on channel 1 Una volta stabilita la connessione la comunicazione seriale avviene attraverso la porta /dev/rfcommx. 10

11 Personal Area Network Viene creata una rete tra dispositivi Bluetooth che supportano il profilo Per prima cosa bisogna caricare il modulo per la gestione del protocollo di emulazione di rete (Bluetooth Network Emulation Protocol): # modprobe bnep Sul dispositivo server avviare il daemon pand in ascolto: # pand --listen --role NAP --master autozap Sui client avviare il daemon pand in ascolto: # pand --connect 00:0A:0B:0C:0D:0E --service NAP autozap A questo punto si possono configurare gli indirizzi di rete sui due host: host0 # ifconfig bnep host1 # ifconfig bnep Strumenti di sviluppo desktop Le stesse funzionalità viste sono disponibili sui diversi ambienti desktop. LINUX: KDE: : kdebluetooth (http://kde( bluetooth.sourceforge.net/) Gnome: : gnome-bluetooth (http://usefulinc.com/software/gnome- bluetooth) Windows XP: gestiti dai driver di sistema Java 11

12 KDE Bluetooth: Discover Gnome-Bluetooth: OBEX send file 12

13 Windows: services inquiry Ambienti di sviluppo Vengono forniti per i diversi sistemi operativi e piattaforme di sviluppo: Proprietari: a seconda dell HW. Linux: Bluez. Windows: Bluetooth API. Java: JSR-82, Java APIs for Bluetooth Wireless Technology. 13

14 Cambridge Silicon Radio BlueCore Cambridge Silicon Radio (CSR, produce chipset bluetooth (BC-0x) totalmente integrati che vengono programmabili ad alto livello. Una volta sviluppato il firmware proprietario, questo viene caricato sui moduli e consegnato al produttore. La maggior parte dei dispositivi integrati (auricolare, dongle USB) integra questo chipset. CSR: BC-02 14

15 CSR Casira Development Kit Ciclo di sviluppo: Sviluppo dell applicativo. Integrazione del chipset nel sistema reale. CSR produce un firmware da caricare sul chipset. Costo sistema (HW+SW): Costo del modulo: 10. CSR: Stack Virtual Machine 15

16 CSR: Bluelab Professional Sviluppo Bluetooth La programmazione Bluetooth è molto simile a quella Internet, con cui condivide i principi di comunicazione e scambio dati fra dispositivi. Tipicamente la comunicazione viene divisa in diverse parti: Scelta del dispositivo con cui comunicare Scelta della modalità di comunicazione Attivazione della connessione uscente (initiator) Accettazione della connessione entrante (listner) Invio dati Ricezione dati 16

17 Windows: Bluetooth API Microsoft ha integrato nativamente il supporto a Bluetooth nella versione XP SP1. Meccanismi molto simili sono condivisi anche per i sistemi Embedded (Windows Mobile5). Microsoft fornisce due diverse modalità di programmazione Bluetooth: Utilizzando le interfaccie socket; Utilizzando il dispositivo direttamente. Linux: BlueZ BlueZ implementa le API per le comunicazioni Bluetooth sotto Linux. Architettura flessibile, efficente e modulare. Viene utilizzato in C/C++. Fornisce il controllo di tutte le parti del sistema, anche quelle avanzate (RSSI) Carenza di documentazione. 17

18 JAVA: JSR-82 In ambiente JAVA le API JSR-82 rappresentano l ambiente l di sviluppo ufficiale per la tecnologia Bluetooth. JSR-82 consiste di due librerie: javax.bluetooth: contiene primitive per le funzioni bluetooth (incluse RFCOMM); javax.obex: implementa le funzioni OBEX. Disponibile su tutte le piattaforme. Fornisce un controllo limitato sull HW (no RSSI), va bene per semplici applicazioni. BlueZ: architettura 18

19 BlueZ: installazione L installazione di Bluez consiste nel caricamento di alcuni moduli nel kernel e nell installazione delle librerie user-space. space. Caricamento dei moduli nel kernel (automatico): modprobe bluez modprobe l2cap modprobe hci_uart (UART support. Optional) modprobe hci_usb (USB support. Optional) Installazione delle librerie: apt-get install bluez-* * libbluetooth1-dev BlueZ: compilazione La compilazione dei programmi a linea di comando viene fatta con GCC attraverso l istruzione: # gcc simplescan.c -o simplescan lbluetooth Utilizzando invece cc come preprocessore # cc `pkg` pkg-config --cflags --libs gtk+-2.0` -l bluetooth BlueBoxRemote.c -o BlueBoxRemote 19

20 Scelta del dispositivo con cui comunicare Ogni dispositivo Bluetooth viene fornito di un indirizzo unico di 48bit (Bluetooth Address, BDADDR). Il dispositivo con cui comunicare viene identificato da tutti i layer col BDADDR. Viene fatta una scansione dello spazio circostante per vedere i device in prossimità. Il risultato è una lista di device Bluetooth da cui selezionare il destinatario. Bluez: simplescan.c (1) include <sys/socket.h socket.h> #include <bluetooth/bluetooth.h< bluetooth/bluetooth.h> #include <bluetooth/hci.h< bluetooth/hci.h> #include <bluetooth/hci_lib.h< bluetooth/hci_lib.h> int main(int argc,, char **argv argv) { inquiry_info *ii = NULL; int max_rsp, num_rsp; int dev_id,, sock, len,, flags; int i; char addr[19] = { 0 ; char name[248] = { 0 ; dev_id = hci_get_route(null); sock = hci_open_dev( dev_id ); if (dev_id( < 0 sock < 0) { perror("opening socket"); exit(1); 20

21 Bluez: simplescan.c (2) len = 8; max_rsp = 255; flags = IREQ_CACHE_FLUSH; ii = (inquiry_info( inquiry_info*) *)malloc(max_rsp * sizeof(inquiry_info)); num_rsp = hci_inquiry(dev_id, len, max_rsp,, NULL, &ii, flags); if( num_rsp < 0 ) perror("hci_inquiry"); "); for (i = 0; i < num_rsp; ; i++) { ba2str(&(ii+i)->bdaddr bdaddr, addr); memset(name,, 0, sizeof(name)); if (hci_read_remote_name(sock( hci_read_remote_name(sock,, &(ii+i ii+i)->bdaddr, sizeof(name), name, 0) < 0) strcpy(name,, "[unknown]"); printf("%s %s\n", addr,, name); free( ii ); close( sock ); return 0; Bluez: simplescan.c (note) Le funzioni che convertono gli indirizzi Bluetooth in stringa sono: int str2ba( const char *str* str, bdaddr_t *ba ); int ba2str( const bdaddr_t *ba,, char *str* ); L inizializzazione del device Bluetooth locale viene fatta con: int hci_get_route( bdaddr_t *bdaddr ); /*NULL = default*/ int hci_open_dev( int dev_id ); Se sono presenti più schede Bluetooth nel sistema e vogliamo aprire una specifica si utilizza int dev_id = hci_devid( ( "01:23:45:67:89:AB" ); 21

22 Bluez: simplescan.c (note) La funzione che esegue l inquiry l è: int hci_inquiry(int dev_id, int len, int max_rsp,, const uint8_t *lap, inquiry_info **ii, long flags); hci_inquiry ritorna la lista di device scoperti ed alcune informazioni su di essi nella variable ii. In caso di errori ritorna -1. Da notare che hci_inquiry vuole un intero per identificare la scheda Bluetooth (dev_id) invece che l identificativo l di un socket come avviene per le altre funzioni. La funzione hci_read_remote_name legge il nome dal dispositivo remoto di cui si specifica il BDADDR: int hci_read_remote_name(int len,, char *name, int int len int timeout) sock, const bdaddr_t *ba, Bluez: : socket RFCOMM La comunicazione attraverso SOCKET Bluetooth è uguale a quella TCP/IP. L unica differenza sta nelle funzioni di apertura ed indirizzamento dei socket. I passi da fare sono: Apertura del socket Connessione (master) o listening (slave) Invio (write sul socket) o ricezione di caratteri (read dal socket) Chiusura del socket. 22

23 Bluez: : RFCOMM server int main(int argc,, char **argv argv) { struct sockaddr_rc loc_addr = { 0, rem_addr = { 0 ; char buf[1024] = { 0 ; int s, client, bytes_read; int opt = sizeof(rem_addr); // allocate socket s = socket(af_bluetooth,, SOCK_STREAM, BTPROTO_RFCOMM); // bind socket to port 1 of the first available // local bluetooth adapter loc_addr.rc_family = AF_BLUETOOTH; loc_addr.rc_bdaddr = *BDADDR_ANY; loc_addr.rc_channel = (uint8_t) 1; bind(s,, (struct( sockaddr *)&loc_addr loc_addr, sizeof(loc_addr)); Bluez: : RFCOMM server // put socket into listening mode listen(s,, 1); // accept one connection client = accept(s,, (struct( sockaddr *)&rem_addr rem_addr,, &opt); ba2str( &rem_addr.rc_bdaddr& rem_addr.rc_bdaddr, buf ); fprintf(stderr,, "accepted connection from %s\n",% buf); memset(buf,, 0, sizeof(buf)); // read data from the client bytes_read = read(client, buf, sizeof(buf)); if( bytes_read > 0 ) { printf("received [%s] s]\n", buf); // close connection close(client); close(s); return 0; 23

24 Bluez: : RFCOMM client { int main(int argc,, char **argv argv) struct sockaddr_rc addr = { 0 ; int s, status; char dest[18] = "01:23:45:67:89:AB"; // allocate a socket s = socket(af_bluetooth,, SOCK_STREAM, BTPROTO_RFCOMM); // set the connection parameters (who to connect to) addr.rc_family = AF_BLUETOOTH; addr.rc_channel = (uint8_t) 1; str2ba( dest,, &addr.rc_bdaddr& ); // connect to server status = connect(s,, (struct( sockaddr *)&addr addr, sizeof(addr)); // send a message if( status == 0 ) { status = write(s,, "hello!", 6); close(s); return 0; Bluez: : RFCOMM (note) In alcuni casi si verificano fenomeni di corsa sull apertura delle porte causando lo stallo del programma. Si consideri ad esempio la situazione che segue: A (master) apre il socket; A invia a B (slave) una prima stringa di bit ed aspetta la risposta. sta. B ha un alta latenza nell aprire la porta Bluetooth quindi non riceve i bit di A. B è in attesa dei bit di A. Risultato: entrambi i programmi sono in attesa e la comunicazione va in stallo. La detezione di situazioni di questo tipo può essere fatta inserendo breakpoint in posizione opportuna. La soluzione consiste nell inserire istruzioni di sleep tra l apertura l della porta A e l invio l dei dati. 24

25 Bluez: : RFCOMM (note) Un altro problema che si riscontra facilmente nelle comunicazioni RFCOMM riguarda l ordinamento l dei byte, soprattutto interfacciando sistemi diversi. Al contrario di quanto avviene per le reti, Bluetooth usa un ordinamento little-endian endian in cui i byte meno significativi vengono inviati prima. Bluez fornisce delle funzioni di conversione: unsigned short int htobs( ( unsigned short int num ); unsigned short int btohs( ( unsigned short int num ); unsigned int htobl( ( unsigned int num ); unsigned int btohl( ( unsigned int num ); Windows: socket L2CAP Esattamente come avviene per RFCOMM, la comunicazione L2CAP avviene attraverso il paradigma SOCKET TCP/IP. La differenza consiste nelle funzioni di include e nel meccanismo di apertura ed indirizzamento dei socket. Le funzioni da includere in questo caso sono: #include <winsock2.h> #include <Ws2bth.h> #include <BluetoothAPIs.h< BluetoothAPIs.h> 25

26 JAVA, JSR-82 I dispositivi vengono rappresentati dalle classi: javax.bluetooth.localdevice per il dispositivo locale; javax.bluetooth.remotedevice remoti. per tutti i dispositivi Come già visto anche negli altri ambienti la comunicazione avviene attraverso i seguenti passi: Inizializzazione dello stack. Discovery del dispositivo con cui comunicare Gestione del dispositivo Discovery dei servizi Comunicazione JSR-82, Device Discovery La classe javax.bluetooth.discoveryagent viene utilizzata per scoprire dispositivi Bluetooth in prossimità. Quando chiamata ritorna un oggetto javax.bluetooth.remotedevice per ogni dispositivo individuato. Se invece vogliamo essere notificati da un evento quando siamo scoperti dobbiamo implementare il metodo dell interfaccia javax.bluetooth.discoverylistener. 26

27 Data Transfer: RFCOMM vs OBEX Per scambiare dati possiamo usare sia RFCOMM che OBEX: quando è opportuno usare uno o l altro? RFCOMM è più indicato per trasferire stream di dati,, esattamente come si farebbe con una porta seriale. OBEX è invece indicato quando i dati da scambiare sono file,, insieme alle informazioni associate (tipo di file, data, dimensione). Se bisogna scambiare dati non assemblati in file RFCOMM, altrimenti OBEX. Operazioni OBEX OBEX è l acronimo di OBject EXchange: è protocollo nativo IRDA adottato da Bluetooth. É un un protocollo per lo scambio dati: vengono definiti: Un server,, l entitl entità che accetta o mette a disposizione file Un client,, l entitl entità che chiede o invia file Le operazioni,, ovvero le interazioni tra client e server. Per ogni operazione iniziata dal client il server invia una risposta che indica lo stato dell operazione. 27

28 Operazioni OBEX OBEX Server: inizializzazione Per creare un server OBEX dobbiamo estendere la classe javax.obex.serverrequesthandler. Visto poi che dobbiamo rispondere ad eventi scatenati da buttons dobbiamo anche implementare l interfaccia l ActionListener. import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.microedition.io.*; import java.io.*; import javax.bluetooth.*; import javax.obex.*; public class FileServer extends ServerRequestHandler implements ActionListener{ 28

29 OBEX Server: action_performed public void actionperformed(actionevent e) { startbutton.setenabled(false); try { UUID uuid = new UUID("8841", true); String url = "btgoep://localhost:" + uuid + ";name=ftp;authenticate=false;master=false;encrypt=false"; SessionNotifier sn = (SessionNotifier)Connector.open(url); updatestatus("[server:] Now waiting for a client to connect"); sn.acceptandopen(this); updatestatus("[server:] A client is now connected"); catch (Exception ex){ OBEX Server: action_performed Ciascun servizio su una macchina ha bisogno di un identificativo univoco (UUID): in questo caso abbiamo scelto 8841; Nel connetersi a questo server il client dovrà utilizzare questo codice. Visto che stiamo creando un server, abbiamo bisogno di chiamare la funzione Connector.open() passandogli come argomento l indirizzo l del servizio. Da notare che abbiamo chiamato il servizio FTP (può essere qualunque): questo è il nome che appare nel service discovery. Visto che il server può ricevere comandi OBEX dal client (CONNECT, GET, PUT, etc.) dovremmo prevedere le relative funzioni per implementarli. 29

30 OBEX Server: on_connect Viene aggiornata la status window per notificare un eventuale connessione. public int onconnect(headerset request, HeaderSet reply) { updatestatus("[server:] The client has created an OBEX session"); return ResponseCodes.OBEX_HTTP_OK; public void ondisconnect (HeaderSet req, HeaderSet resp) { updatestatus("[server:] The client has disconnected the OBEX session"); OBEX Server: on_put public int onput (Operation op) { try { java.io.inputstream is = op.openinputstream(); updatestatus("got data bytes " + is.available() + " name " + op.getreceivedheaders().getheader(headerset.name) + " type " + op.gettype()) File f = new File((String)op.getReceivedHeaders().getHeader(HeaderSet.NAME)); eaderset.name)); FileOutputStream fos = new FileOutputStream (f); byte b[] = new byte[1000]; int len; while (is.available() > 0 && (len = is.read(b)) > 0) { fos.write (b, 0, len); fos.close(); updatestatus("[server:] Wrote data to " + f.getabsolutepath()); catch (Exception e) { e.printstacktrace(); return ResponseCodes.OBEX_HTTP_OK; 30

31 OBEX Client Device Discovery La classe DeviceDiscoverer consente trovare gli altri dispositivi Bluetooth. di Il processo di discovery inizia con l istanza l della classe javax.bluetooth.localdevice, che permette di ottenere un istanza per la classe javax.bluetooth.discoveryagent. Da javax.bluetooth.localdevice viene anche preso il nome del nostro dispositivo insieme al suo indrizzo Bluetooth. 31

32 DeviceDiscoverer public class DeviceDiscoverer implements DiscoveryListener { FileClient client; Vector remotedevices = new Vector(); DiscoveryAgent discoveryagent; public DeviceDiscoverer(FileClient client) { this.client = client; try { LocalDevice localdevice = LocalDevice.getLocalDevice(); discoveryagent = localdevice.getdiscoveryagent(); client.updatestatus("[client:] LocalDevice properties: " + localdevice.getfriendlyname() + " (" + localdevice.getbluetoothaddress() + ")"); client.updatestatus("[client:] Searching for Bluetooth devices in the vicinity..."); discoveryagent.startinquiry(discoveryagent.giac, this); catch(exception e) { e.printstacktrace(); DeviceDiscovered Per ciascun dispositivo trovato viene chiamato il metodo devicediscovered() della classe DeviceDiscoverer. public void devicediscovered(remotedevice remotedevice, DeviceClass cod) { try{ remotedevices.addelement(remotedevice); client.updatestatus("[client:] New device discovered : " + remotedevice.getfriendlyname(true)+ " (" + remotedevice.getbluetoothaddress() + ")" ); catch(exception e){ e.printstacktrace(); 32

33 InquiryCompleted Quando termina il processo di discovery viene chiamato il metodo inquirycompleted() della classe DeviceDiscoverer. public void inquirycompleted(int disctype) ) { String inqstatus = null; if (disctype( == DiscoveryListener.INQUIRY_COMPLETED) ) { inqstatus = "[client:] Inquiry completed"; else if (disctype( == DiscoveryListener.INQUIRY_TERMINATED) ) { inqstatus = "[client:] Inquiry terminated"; else if (disctype( == DiscoveryListener.INQUIRY_ERROR) ) { inqstatus = "[client:] Inquiry error"; client.updatestatus(inqstatus); client.servicebutton.setenabled(true); client.devicebutton.setenabled(false); Service Discovery Una volta trovati i dispositivi in range andiamo a vedere i servizi che questi condividono. La classe ServiceDiscoverer consente di trovare gli altri dispositivi Bluetooth. La particolarità di questa classe è che viene eseguita in un thread separato per non bloccare l applicazione mentre viene eseguito lo scan. Da notate che viene utilizzato lo stesso UID del server. 33

34 ServiceDiscoverer public class ServiceDiscoverer extends Thread implements DiscoveryListener { UUID[] uuidset = {new UUID("8841", true); int[] attrset = {0x0100, 0x0003, 0x0004; FileClient client; ServiceRecord servicerecord; String connectionurl; Vector devicelist; public ServiceDiscoverer(FileClient client, Vector devicelist) { this.client = client; this.devicelist = devicelist; ServiceDiscoverer Run public void run(){ try { LocalDevice localdevice = LocalDevice.getLocalDevice(); DiscoveryAgent discoveryagent = localdevice.getdiscoveryagent(); t(); RemoteDevice remotedevice = null; for(int i=0; i < devicelist.size(); i++){ remotedevice = (RemoteDevice)deviceList.get(i); client.updatestatus("[client:] Searching for Services on: " + remotedevice.getfriendlyname(true)+ " (" + remotedevice.getbluetoothaddress() + ")" ); discoveryagent.searchservices(attrset, uuidset, remotedevice, this); try{ Thread.sleep(2000); catch (Exception e){ catch(exception e) { e.printstacktrace(); 34

35 ServiceDiscovered Per ciascun servizio trovato che risponde all UID impostato viene chiamato il metodo ServiceDiscovered() della classe servicediscoverer. Una volta trovato questo servizio controlliamo che il nome sia FTP (anche se non è obbligatorio impostare il nome del servizio). Una volta trovato il servizio, memorizziamo l indirizzo in una stringa, connectionurl. ServiceDiscovered public void servicesdiscovered(int transid, ServiceRecord[] servrecord) ) { for(int i = 0; i < servrecord.length; ; i++) { DataElement servicenameelement = servrecord[i].getattributevalue(0x0100); String servicename = (String)serviceNameElement.getValue( String)serviceNameElement.getValue(); if(servicename.equals("ftp")){ ")){ client.updatestatus("[client:] A matching service has been found"); try { connectionurl = servrecord[i].getconnectionurl(1,false); catch (Exception e){ client.updatestatus("[client:] oops"); client.updatestatus("[client:] The connection URL is: " + connectionurl ); client.servicebutton.setenabled(false); client.connbutton.setenabled(true); 35

36 ObjectPusher La classe ObjectPusher contiene il codice OBEX. Contiene un metodo run che invia un file al server, identificato dal suo URL. Viene connesso il dispositivo. Viene creata una sessione OBEX. Il file da inviare viene convertito in byte array. Viene creato l header l ed iniziata l operazione l di PUT con cs.put() Viene creato un outputstream ed inviato il file. ObjectPusher run (1) public void run(){ try{ connection = Connector.open(connectionURL); client.updatestatus("connection obtained"); ClientSession cs = (ClientSession)connection( ClientSession)connection; HeaderSet hs = cs.createheaderset(); cs.connect(hs); client.updatestatus("obex session created"); InputStream is = new FileInputStream(file); byte filebytes[] = new byte[is.available()]; is.read(filebytes); is.close(); hs = cs.createheaderset(); hs.setheader(headerset.name, file.getname()); 36

37 ObjectPusher run (2) hs.setheader(headerset.type,, "text/plain"); hs.setheader(headerset.length,, new Long(filebytes.length)); Operation putoperation = cs.put(hs); client.updatestatus("pushing file: " + file.getname()); client.updatestatus("total file size: " + filebytes.length + " bytes"); OutputStream outputstream = putoperation.openoutputstream(); outputstream.write(filebytes); client.updatestatus("file push complete"); outputstream.close(); putoperation.close(); cs.disconnect(null); connection.close(); catch (Exception e){ Conclusioni La sviluppo di applicazioni Bluetooth permette di integrare collegamenti radio in modo efficace. I sistemi di sviluppo offrono caratteristiche simili su piattaforme diverse: scegliere la piattaforma più adatta alla nostra applicazione. I sistemi embedded offrono capacità di sviluppo integrate a basso costo. I profili maggiormente utilizzati sono: RFCOMM, OBEX, HEADSET. 37

Programmazione J2ME. Lezione 9. Il Bluetooth. Di Blasi Gianpiero - D.M.I. - Università di Catania

Programmazione J2ME. Lezione 9. Il Bluetooth. Di Blasi Gianpiero - D.M.I. - Università di Catania Di Blasi Gianpiero - D.M.I. - Università di Catania Programmazione J2ME Lezione 9 Il Bluetooth Cosa impareremo oggi? L'API JSR-82 per la comunicazione tramite tecnologia Bluetooth Utilizzo dei protocolli

Dettagli

Harald Dente Blu ed il bluetooth. Che ce ne facciamo dei comandi di bluez?

Harald Dente Blu ed il bluetooth. Che ce ne facciamo dei comandi di bluez? Harald Dente Blu ed il bluetooth Che ce ne facciamo dei comandi di bluez? Harald Dente Blu?? Chi è Harald Dente Blu? La storia narra che Harald I blåtand (= dente blu) Gormson (= figlio di Gorm, patronimico)

Dettagli

Terzo Modulo: Wireless. La tecnologia Bluetooth

Terzo Modulo: Wireless. La tecnologia Bluetooth La tecnologia Bluetooth Storia (1) Harald Blaatand II Re vichingo della Danimarca 940 981 a.c. La storia riporta che abbia unito la Norvegia con la Danimarca Portato in inglese Bluetooth Blaatand = dalla

Dettagli

Stefano Sanna http://www.gerdavax.it. Stefano Sanna, Applicazioni Bluetooth con Linux. Cagliari, 26 Novembre 2005

Stefano Sanna http://www.gerdavax.it. Stefano Sanna, Applicazioni Bluetooth con Linux. Cagliari, 26 Novembre 2005 Applicazioni L Bluetooth con Linux o Stefano Sanna http://www.gerdavax.it 1 Agenda Bluetooth: come e perché! Il protocollo Bluetooth e la sua implementazione Giochiamo con il protocollo :-) Applicazioni

Dettagli

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX A cura del prof. Gino Tombolini 1 COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX Il sistema UNIX TCP/IP fornisce un meccanismo di comunicazione tra processi residenti su nodi distinti di una rete, compatibili

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

Interazione (TCP) Client-Server con le socket

Interazione (TCP) Client-Server con le socket Interazione (TCP) Client-Server con le socket D. Gendarmi Interazione TCP Client/Server Server 2. Assegnare un local address alla socket 3. Settare la socket all ascolto 4. Iterativamente: a. Accettare

Dettagli

Configurazione Bluetooth t630 su MANDRAKE 10

Configurazione Bluetooth t630 su MANDRAKE 10 Configurazione Bluetooth t630 su MANDRAKE 10 Per prima cosa assicuratevi della presenza dei moduli appositi nel kernel, se stiamo usando il 2.6.3 standard della Mdk 10.0 dovrebbe essere già tutto a posto.

Dettagli

IPC Inter Process Communication

IPC Inter Process Communication Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni

Dettagli

Servizi web in LabVIEW

Servizi web in LabVIEW Servizi web in LabVIEW Soluzioni possibili, come si utilizzano. 1 Soluzioni possibili WEB SERVER Dalla versione 5.1 di LabVIEW è possibile implementare un Web server che consente di operare da remoto sul

Dettagli

Applicazioni web. Parte 5 Socket

Applicazioni web. Parte 5 Socket Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Applicazioni web Parte 5 Michele Tomaiuolo tomamic@ce.unipr.it Protocolli Internet I computer

Dettagli

Esempio 1: stampa locale di file remoto

Esempio 1: stampa locale di file remoto Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Un servizio Bluetooth per il monitoraggio di una rete di sensori senza filo

Un servizio Bluetooth per il monitoraggio di una rete di sensori senza filo Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica tesi di laurea Un servizio Bluetooth per il monitoraggio di una rete di sensori senza filo Anno Accademico 2005/2006 relatore Ch.mo prof.

Dettagli

Creare una applicazione Winsock di base

Creare una applicazione Winsock di base Creare una applicazione Winsock di base Usiamo le API Winsock incluse in Creare un progetto per una Socket Windows (in Dev C++) Selezionare la file New Projects Selezionare Empty Project Salvare

Dettagli

Connettività e Comunicazione

Connettività e Comunicazione Griglie e Sistemi di Elaborazione Ubiqui Connettività e Comunicazione Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Connettività di Sistemi Ubiqui Protocolli Wireless WAP/WML i-mode Infrarossi Bluetooth

Dettagli

Rev. 2.00.0 NGS FRAMEWORK

Rev. 2.00.0 NGS FRAMEWORK www.promax.it Le informazioni contenute nel manuale sono solo a scopo informativo e possono subire variazioni senza preavviso e non devono essere intese con alcun impegno da parte di Promax srl. Promax

Dettagli

82.BTCF BLUETOOTH CARD ADAPTER

82.BTCF BLUETOOTH CARD ADAPTER LIFE ELECTRONICS S.p.A. MANUALE D USO 82.BTCF BLUETOOTH CARD ADAPTER INFORMAZIONI GENERALI La tecnologia wireless Bluetooth elimina totalmente l uso di cavi per la connessione a qualunque dispositivo portatile

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

Architettura Client-Server

Architettura Client-Server Architettura Client-Server 1. il client manda una richiesta al server 2. il server (in attesa) riceve la richiesta 3. il server esegue il servizio richiesto (generando un thread concorrente) 4. il server

Dettagli

Protocolli per il Web. Impianti Informatici. Protocolli applicativi

Protocolli per il Web. Impianti Informatici. Protocolli applicativi Protocolli per il Web Protocolli applicativi I protocolli applicativi 2 Applicazioni Socket interface HTTP (WEB) SMTP (E-MAIL) FTP... NFS RPC DNS... Trasporto TCP UDP Rete ICMP RIP OSPF IP ARP RARP Non

Dettagli

LA TECNOLOGIA BLUETOOTH

LA TECNOLOGIA BLUETOOTH DII - Dipartimento di Ingegneria dell Informazione Corso di Comunicazioni Wireless LA TECNOLOGIA BLUETOOTH Laura Raffaeli l.raffaeli@univpm.it Cos è Bluetooth? E uno standard di comunicazione radio per

Dettagli

Music Everywhere with BT

Music Everywhere with BT Music Everywhere with BT Acquaviva Luca 231767 luca.acquaviva@studio.unibo.it Colombini Gabriele 231491 gabriele.colombini@studio.unibo.it Manservisi Alberto 258370 alberto.manservisi@studio.unibo.it Abstract

Dettagli

Socket TCP. prima parte

Socket TCP. prima parte Socket TCP prima parte Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd

Dettagli

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e

Dettagli

EW1085R2R2R2 BLUE MICRO Ricevitore Bluetooth USB

EW1085R2R2R2 BLUE MICRO Ricevitore Bluetooth USB EW1085R2R2R2 BLUE MICRO Ricevitore Bluetooth USB EW1085R2R2 BLUE MICRO Ricevitore Bluetooth USB 2 ITALIANO Contenuti 1.0 Introduzione... 2 1.1 Funzioni e caratteristiche... 2 1.2 Contenuto della confezione...

Dettagli

Una semplice applicazione client/server 1

Una semplice applicazione client/server 1 Una semplice applicazione client/server 1 Il nostro obiettivo In questa parte del corso implementeremo un applicazione client/server che usa i socket Internet disponibili nei sistemi Unix/Linux. Nello

Dettagli

Connettività e Comunicazione

Connettività e Comunicazione Griglie e Sistemi di Elaborazione Ubiqui Connettività e Comunicazione Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Connettività di Sistemi Ubiqui Protocolli Wireless WAP/WML i-mode Infrarossi Bluetooth

Dettagli

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat.

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat. Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio

Dettagli

Manuale per gli utenti di Bluetooth

Manuale per gli utenti di Bluetooth Manuale per gli utenti di Bluetooth (RIF-BT10) Indice 1. Che cosa è Bluetooth?... 3 2. Funzioni dell adattatore Bluetooth (RIF-BT10)... 4 3. Descrizione del prodotto... 5 4. Configurazione del sistema...

Dettagli

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE terza parte TCP/IPdi Cristian Randieri randieri@intellisystem.it In questa terza parte della presentazione del dispositivo

Dettagli

Program m azione di Sistem a 6

Program m azione di Sistem a 6 Program m azione di Sistem a 6 Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l'università Ca' Foscari di Venezia, anno accademico 2004/ 2005. Parte di questo materiale

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

Introduzione a Bluetooth

Introduzione a Bluetooth Introduzione a Bluetooth Bluetooth è uno standard di comunicazione radio a corto raggio tramite il quale si possono connettere dispositivi elettronici in modalità wireless (senza fili). La tecnologia Bluetooth

Dettagli

Connettività e Comunicazione

Connettività e Comunicazione Griglie e Sistemi di Elaborazione Ubiqui Connettività e Comunicazione Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Connettività di Sistemi Ubiqui Protocolli Wireless WAP/WML i-mode Infrarossi Bluetooth

Dettagli

Strutture dei sistemi operativi

Strutture dei sistemi operativi Contenuti della lezione di oggi Strutture dei sistemi operativi Descrizione dei servizi messi a disposizione dell utente dal SO Utente generico Programmatore Esame delle possibili strutture di un SO Monolitica

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE IDROID 86 LAB pagg 12-13 23-04-2007 14:57 Pagina 12 I-D01 LAB UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE PROGRAMMAZIONE Alcuni comportamenti predefiniti attivabili su I-Droid01 sono facilmente riproducibili

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

European Master on Critical Networked Systems

European Master on Critical Networked Systems Modulo su Parte I: Lezione 4: Introduzione ai sistemi di Mobile Computing Accesso ai servizi per terminali mobili Docente: Prof. Stefano RUSSO Dipartimento di Informatica e Sistemistica Via Claudio 21,

Dettagli

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat.

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat. Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio di 1 punto

Dettagli

Laboratorio di Programmazione in Rete

Laboratorio di Programmazione in Rete Laboratorio di rogrammazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12

Dettagli

Acer Bluetooth 1.2 USB Dongle

Acer Bluetooth 1.2 USB Dongle . Acer Bluetooth 1.2 USB Dongle Manuale dell utente i This product is in compliance with the essential requirements and other relevant provisions of the R&TTE directive 1999/5/EC. Product Name: Acer Bluetooth

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Sistemi Operativi per Sistemi di Elaborazione Ubiqui

Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi di Elaborazione Ubiqui Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Sistemi Operativi per Ubiquitous Computing Palm OS Symbian OS

Dettagli

Corso di Reti di Calcolatori

Corso di Reti di Calcolatori Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1 Datagrammi Le applicazioni che

Dettagli

Socket TCP. seconda parte

Socket TCP. seconda parte Socket TCP seconda parte Schema della connessione Computer 1 127.43.18.1 indirizzo I1 indirizzo I2 Computer 2 143.225.5.3 porta 45000 socket porta 5200 socket processo client processo server socket(...)

Dettagli

Corso di Reti di Calcolatori. Datagrammi

Corso di Reti di Calcolatori. Datagrammi Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1 Datagrammi Le applicazioni che

Dettagli

Una prima applicazione in C per l utilizzo delle socket

Una prima applicazione in C per l utilizzo delle socket Una prima applicazione in C per l utilizzo delle socket Richiamo sulle socket Socket in Windows (WinSock) Differenze tra sistemi operativi D. Gendarmi Socket API API: Application Programming Interface

Dettagli

J2ME Platform. Symbian OS. Nokia property platform: Series 60. Microsoft Windows CE.NET Microsoft Windows Mobile Mobile client-server communication

J2ME Platform. Symbian OS. Nokia property platform: Series 60. Microsoft Windows CE.NET Microsoft Windows Mobile Mobile client-server communication Dott. Giovanni Perbellini giovanni.perbellini@univr.it J2ME Platform J2ME Wireless Toolkit (WTK 2.2) Symbian OS Symbian SDK Nokia property platform: Series 60 Nokia Developer s Suite SDK Microsoft Windows

Dettagli

R.Focardi Laboratorio di Ingegneria del Software 6. 1

R.Focardi Laboratorio di Ingegneria del Software 6. 1 Networking Java permette comunicazioni in rete basate sul concetto di socket, che permette di vedere la comunicazione in termini di flusso (stream), in modo analogo all input-output di file, usando Stream

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

Paradigma client-server

Paradigma client-server Interazione Client Server (socket) Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 15 CliSer - 1/31 Paradigma client-server Le applicazioni utente devono interagire con

Dettagli

Bluetooth Hacking. Stefano Sanna - JUG Sardegna Emanuele di Saverio - JUG Roma. Javaday IV Roma 30 gennaio 2010

Bluetooth Hacking. Stefano Sanna - JUG Sardegna Emanuele di Saverio - JUG Roma. Javaday IV Roma 30 gennaio 2010 Bluetooth Hacking Stefano Sanna - JUG Sardegna Emanuele di Saverio - JUG Roma Stefano Sanna & Emanuele di Saverio JUG Sardegna / JUG Roma Sommario Chi siamo L importanza del Bluetooth sui device mobili

Dettagli

Un applicazione per il trasferimento file in ambiente Symbian

Un applicazione per il trasferimento file in ambiente Symbian tesi di laurea Anno Accademico 2005/2006 relatore Ch.mo prof. Domenico Cotroneo correlatore Ing. Paolo Ascione candidato Barbara Migliaccio Matr. 534/1026 Scenario Applicativo File Transfer via Bluetooth

Dettagli

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno

Lezione 5: Socket SSL/ TLS. Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno Lezione 5: Socket SSL/ TLS Corso di Programmazione in Rete Laurea Magistrale in Ing. Informatica Università degli Studi di Salerno 1 Outline Introduzione Gestione delle chiavi e dei certificati Comunicazione

Dettagli

RMI: metodi equals e hashcode

RMI: metodi equals e hashcode RMI: metodi equals e hashcode Per verificare se due oggetti remoti contengono gli stessi dati, la chiamata indirizzata al metodo equals() avrebbe bisogno di contattare i server dove si trovano gli oggetti

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

CONFIGURATION MANUAL

CONFIGURATION MANUAL RELAY PROTOCOL CONFIGURATION TYPE CONFIGURATION MANUAL Copyright 2010 Data 18.06.2013 Rev. 1 Pag. 1 of 15 1. ENG General connection information for the IEC 61850 board 3 2. ENG Steps to retrieve and connect

Dettagli

USB Bluetooth Adapter

USB Bluetooth Adapter USB Bluetooth Adapter CN-512 Bluetooth 2.0+EDR klass 2 CN-520 Bluetooth 2.0+EDR klass 2 CN-521 Bluetooth 2.0+EDR klass 1 Manuale dell utente All rights reserved Sommario 1. Installazione del software Bluetooth...3

Dettagli

Navigare in Internet

Navigare in Internet Navigare in Internet Navigare in Internet Scopo del modulo Gli scopi del modulo consistono nel mettere in grado di : Usare particolari tipi di file e protocolli e di meccanismi di accesso remoto Usare

Dettagli

Linux & GPRS. Ing. Mauro Barattin 28/10/2006

Linux & GPRS. Ing. Mauro Barattin 28/10/2006 Linux & GPRS Ing. Mauro Barattin 28/10/2006 Indice 1 Introduzione............................................ 1 2 Strumenti utilizzati........................................ 1 3 Le tecnologie GPRS/EDGE/UMTS...............................

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Introduzione alle Reti di Calcolatori versione 1.0 del 11/03/2003 G. Mecca mecca@unibas.it Università della Basilicata Reti >> Sommario Sommario dei Concetti Elab. Client-Server

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Programmazione in Rete e Laboratorio Comunicazione distribuita Port1 Java VM1 Java VM2 Port 2 Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino

Dettagli

Defenestration #1. (in)sicurezze del protocollo Bluetooth. Alfredo Morresi (aka Legolas) http://www.rainbowbreeze.it 26/11/2006 - Monteurano

Defenestration #1. (in)sicurezze del protocollo Bluetooth. Alfredo Morresi (aka Legolas) http://www.rainbowbreeze.it 26/11/2006 - Monteurano Defenestration #1 (in)sicurezze del protocollo Bluetooth Alfredo Morresi (aka Legolas) http://www.rainbowbreeze.it 26/11/2006 - Monteurano Alfredo Morresi (http://www.rainbowbreeze.it) Slide 1 Bluetooth

Dettagli

T.A.R.I. Socket (ICT, AL)

T.A.R.I. Socket (ICT, AL) Internet Applications (Client-Server Concept, Use of Protocol Ports, Socket API, DNS, E-mail, TELNET, FTP) Funzionalità Livello di trasporto e livelli sottostanti Comunicazione base Disponibilità Livello

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Corsi di Reti di Calcolatori (Docente Luca Becchetti) NOT : le soluzioni proposte sono volutamente sintetiche. Lo studente dovrebbe fare uno sforzo per risolvere i quesiti in modo autonomo, espandendo

Dettagli

invisibile Bluetooth, la porta

invisibile Bluetooth, la porta Tecnologia Mobile Bluetooth, la porta invisibile L interfaccia Bluetooth, presente ormai in una gran parte dei moderni telefoni cellulari, permette di collegare numerose periferiche: ecco come funziona

Dettagli

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi Connessioni di rete Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi 1 Socket orientato alla connessione o non orientato alla connessione 2 Socket in astratto 3 Socket modalità

Dettagli

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 maximiliano.marchesi@studenti.unipr.it Sommario Introduzione..................................................................................

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Uso di sniffer ed intercettazione del traffico IP

Uso di sniffer ed intercettazione del traffico IP Uso di sniffer ed intercettazione del traffico IP Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy

Dettagli

Capitolo 6. Wireless LAN: via i fili!

Capitolo 6. Wireless LAN: via i fili! Capitolo 6 Wireless LAN: via i fili! Spesso la realizzazione di una rete impone maggiori problemi nella realizzazione fisica che in quella progettuale: il passaggio dei cavi all interno di apposite guide

Dettagli

Guida di installazione rete wireless NPD4759-00 IT

Guida di installazione rete wireless NPD4759-00 IT Guida di installazione rete wireless NPD4759-00 IT Controllo della rete Verificare le impostazioni di rete del computer, quindi scegliere cosa fare. Seguire le istruzioni per l'ambiente in cui funzionano

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Servizi di rete e web. Prof. Maurizio Naldi A.A. 2015/16

Servizi di rete e web. Prof. Maurizio Naldi A.A. 2015/16 Servizi di rete e web Prof. Maurizio Naldi A.A. 2015/16 Applicazione Unità di trasmissione dati a livello applicazione Applicazione Presentazione Unità di trasmissione dati a livello presentazione Presentazione

Dettagli

Esercitazione Monitoraggio temperatura via WEB mediante Arduino YUN

Esercitazione Monitoraggio temperatura via WEB mediante Arduino YUN Percorsi Abilitanti Speciali A.A. 2013/2014 classe abilitazione C320 LABORATORIO MECCANICO TECNOLOGICO Esercitazione Monitoraggio temperatura via WEB mediante Arduino YUN Pag. 2 SOMMARIO Presentazione

Dettagli

Laboratorio di Reti di Calcolatori

Laboratorio di Reti di Calcolatori Laboratorio di Reti di Calcolatori Funzioni utili, server ricorsivi, echo client ed echo server. Paolo D Arco Abstract Scopo della lezione è presentare alcune funzioni di utilità generale (e.g., funzioni

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

Dettagli

Modulo 1.3 Reti e servizi

Modulo 1.3 Reti e servizi Modulo 1.3 Reti e servizi 1. Introduzione al Networking Connettere il PC in rete; schede di rete e modem; Panoramica sulle reti ad alta velocita' e reti dial-up; Testare la connettivita' con ping; Introduzione

Dettagli

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa. Introduzione alla tecnologia JMX 1 Viene analizzata l architettura sottostante le Java Managment Extensions (JMX) mostrandone un utilizzo applicativo e analizzando altri possibili scenari d uso di Ivan

Dettagli

SC per Inter Process Comminication. Comunicazione fra macchine diverse: socket

SC per Inter Process Comminication. Comunicazione fra macchine diverse: socket SC per Inter Process Comminication Comunicazione fra macchine diverse: socket 1 Sockets File speciali utilizzati per connettere due o più processi con un canale di comunicazione i processi possono risiedere

Dettagli

Guida rapida all installazione

Guida rapida all installazione Guida rapida all installazione Wireless Network Broadband Router 140g+ WL-143 La presente guida illustra solo le situazioni più comuni. Fare riferimento al manuale utente contenuto nel CD-ROM in dotazione

Dettagli

Sistemi Operativi per Sistemi di Elaborazione Ubiqui

Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi di Elaborazione Ubiqui Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Sistemi Operativi per Ubiquitous Computing Palm OS SymbianOS

Dettagli

appunti delle lezioni Architetture client/server: applicazioni client

appunti delle lezioni Architetture client/server: applicazioni client Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente

Dettagli

Reti e Sistemi per l Automazione MODBUS. Stefano Panzieri Modbus - 1

Reti e Sistemi per l Automazione MODBUS. Stefano Panzieri Modbus - 1 MODBUS Stefano Panzieri Modbus - 1 La Storia Diventa uno STANDARD nel 1979 Nato come protocollo di comunicazione SERIALE si è successivamente adattato alle specifiche TCP/IP Permette una comunicazione

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ&

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& 3ULPRHVHUFL]LR6RFNHWVWUHDPFRQULGLUH]LRQH Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,

Dettagli

EK20-IDPAYI MANUALE D USO

EK20-IDPAYI MANUALE D USO RFID TRANSPONDER TECHNOLOGY DOC. 368-R1-IT EK20-IDPAYI MANUALE D USO EK20-IDPAYI (qui chiamato LETTORE) è un dispositivo fisso RFID adatto a eseguire pagamenti con il metodo a inserzione. -Opera con CARTE

Dettagli

Installazione Cellulare + Bluetooth come gateway GSM per Asterisk.

Installazione Cellulare + Bluetooth come gateway GSM per Asterisk. Installazione Cellulare + Bluetooth come gateway GSM per Asterisk. Creato da P.M. Lovisolo Sistemista attualmente discoccupato in cerca di lavoro :( mail: parknat12@yahoo.com Dopo aver installato Asterisk

Dettagli

Corso GNU/Linux - Lezione 5. Davide Giunchi - davidegiunchi@libero.it

Corso GNU/Linux - Lezione 5. Davide Giunchi - davidegiunchi@libero.it Corso GNU/Linux - Lezione 5 Davide Giunchi - davidegiunchi@libero.it Reti - Protocollo TCP/IP I pacchetti di dati vengono trasmessi e ricevuti in base a delle regole definite da un protocollo di comunicazione.

Dettagli

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso DATAGRAM SOCKET Angelastro Sergio Diomede Antonio Viterbo Tommaso Definizione supporta i datagram privo di connessione messaggi inaffidabili di una lunghezza massima prefissata il protocollo UDP supporta

Dettagli

Sommario della lezione

Sommario della lezione Sistemi Operativi Docente: Ugo Erra ugoerr+so@dia.unisa.it 2 LEZIONE STRUTTURE DEI SISTEMI OPERATIVI CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione

Dettagli

4 - Il livello di trasporto

4 - Il livello di trasporto Università di Bergamo Dipartimento di Ingegneria Gestionale e dell Informazione 4 - Il livello di trasporto Architetture e Protocolli per Internet Servizio di trasporto il livello di trasporto ha il compito

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli