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 ( Bluetooth Designer ( Bluez ( MSDN ( Java: SUN Developer Network ( JavaBluetooth ( 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 ( bluetooth.sourceforge.net/) Gnome: : gnome-bluetooth ( 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

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

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

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

Dettagli

FPf per Windows 3.1. Guida all uso

FPf per Windows 3.1. Guida all uso FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete

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

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

Come configurare l accesso ad Internet con il tuo telefonino GPRS EDGE* UMTS* (Sistema Operativi Microsoft Win95 e Win98).

Come configurare l accesso ad Internet con il tuo telefonino GPRS EDGE* UMTS* (Sistema Operativi Microsoft Win95 e Win98). Come configurare l accesso ad Internet con il tuo telefonino GPRS EDGE* UMTS* (Sistema Operativi Microsoft Win95 e Win98). OPERAZIONI PRELIMINARI Registrati gratuitamente al servizio I-BOX: qualora non

Dettagli

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Tecnologie informatiche ACCESSO REMOTO CON WINDOWS Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Un esempio di tale servizio

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

Hardware delle reti LAN

Hardware delle reti LAN Hardware delle reti LAN Le reti LAN utilizzano una struttura basata su cavi e concentratori che permette il trasferimento di informazioni. In un ottica di questo tipo, i computer che prendono parte allo

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

COME CREARE UNA LAN DOMESTICA

COME CREARE UNA LAN DOMESTICA COME CREARE UNA LAN DOMESTICA Breve Introduzione con la sigla LAN, si intende Local Area Network, una rete virtuale che permette la comunicazione tra più computer tramite collegamento via cavo. Ciò permette

Dettagli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per

Dettagli

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC

BMSO1001. Virtual Configurator. Istruzioni d uso 02/10-01 PC BMSO1001 Virtual Configurator Istruzioni d uso 02/10-01 PC 2 Virtual Configurator Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Concetti

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

Socket & RMI Ingegneria del Software - San Pietro Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la

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

Stampe in rete Implementazione corretta

Stampe in rete Implementazione corretta NETWORK PRINT SERVERS Articolo Stampe in rete Implementazione corretta Created: June 3, 2005 Last updated: June 3, 2005 Rev:.0 INDICE INTRODUZIONE 3 INFRASTRUTTURA DELLE STAMPE IN RETE 3. Stampa peer-to-peer

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

Manuale d'uso del Connection Manager

Manuale d'uso del Connection Manager Manuale d'uso del Connection Manager Edizione 1.0 2 Indice Informazioni sull'applicazione Gestione connessioni 3 Operazioni preliminari 3 Aprire l'applicazione Gestione connessioni 3 Visualizzare lo stato

Dettagli

Configurazione di Outlook Express

Configurazione di Outlook Express OUTLOOK Outlook Express è il client di posta elettronica sviluppato da Microsoft, preinstallato su sistemi operativi Windows a partire da Windows 98 fino all'uscita di Windows XP. Con l'arrivo di Windows

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Manuale Utente MyFastPage

Manuale Utente MyFastPage Manuale MyFastPage Utente Elenco dei contenuti 1. Cosa è MyVoice Home?... 4 1.1. Introduzione... 5 2. Utilizzo del servizio... 6 2.1. Accesso... 6 2.2. Disconnessione... 7 2.3. Configurazione base Profilo

Dettagli

Esercitazione [6] Client/Server con Socket

Esercitazione [6] Client/Server con Socket Esercitazione [6] Client/Server con Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di

Dettagli

IRSplit. Istruzioni d uso 07/10-01 PC

IRSplit. Istruzioni d uso 07/10-01 PC 3456 IRSplit Istruzioni d uso 07/10-01 PC 2 IRSplit Istruzioni d uso Indice 1. Requisiti Hardware e Software 4 1.1 Requisiti Hardware 4 1.2 Requisiti Software 4 2. Installazione 4 3. Concetti fondamentali

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Software di gestione della stampante

Software di gestione della stampante Questo argomento include le seguenti sezioni: "Uso del software CentreWare" a pagina 3-11 "Uso delle funzioni di gestione della stampante" a pagina 3-13 Uso del software CentreWare CentreWare Internet

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

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Start > Pannello di controllo > Prestazioni e manutenzione > Sistema Oppure clic destro / Proprietà sull icona Risorse del computer su Desktop

Start > Pannello di controllo > Prestazioni e manutenzione > Sistema Oppure clic destro / Proprietà sull icona Risorse del computer su Desktop Installare e configurare una piccola rete locale (LAN) Usando i Protocolli TCP / IP (INTRANET) 1 Dopo aver installato la scheda di rete (seguendo le normali procedure di Aggiunta nuovo hardware), bisogna

Dettagli

HTTP adaptation layer per generico protocollo di scambio dati

HTTP adaptation layer per generico protocollo di scambio dati HTTP adaptation layer per generico protocollo di scambio dati Sandro Cavalieri Foschini 101786 Emanuele Richiardone 101790 Programmazione in Ambienti Distribuiti I - 01FQT prof. Antonio Lioy A.A. 2002-2003

Dettagli

1. Il Client Skype for Business

1. Il Client Skype for Business 1. Il Client Skype for Business 2. Configurare una Periferica Audio 3. Personalizzare una Periferica Audio 4. Gestire gli Stati di Presenza 5. Tabella Stati di Presenza 6. Iniziare una Chiamata 7. Iniziare

Dettagli

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13 FileMaker Pro 13 Utilizzo di una Connessione Desktop Remota con FileMaker Pro13 2007-2013 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054

Dettagli

Collegamento remoto vending machines by do-dots

Collegamento remoto vending machines by do-dots Collegamento remoto vending machines by do-dots Ultimo aggiornamento 23 marzo 2011 rev1 - Stesura iniziale 18/10/2010 rev2 - Approfondimenti 12/11/2010 rev3 Riduzione dei contenuti per una lettura generica

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

ARCHIVIA PLUS VERSIONE SQL SERVER

ARCHIVIA PLUS VERSIONE SQL SERVER Via Piemonte n. 6-6103 Marotta di Mondolfo PU tel. 021 960825 fax 021 9609 ARCHIVIA PLUS VERSIONE SQL SERVER Istruzioni per configurazione sql server e conversione degli archivi Versione n. 2011.09.29

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

Configurare una rete con PC Window s 98

Configurare una rete con PC Window s 98 Configurare una rete con PC Window s 98 In estrema sintesi, creare una rete di computer significa: realizzare un sistema di connessione tra i PC condividere qualcosa con gli altri utenti della rete. Anche

Dettagli

Altri tipi di connessione

Altri tipi di connessione Altri tipi di connessione Francesca Martelli f.martel@di.unipi.it Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo

Dettagli

Gestione degli indirizzi

Gestione degli indirizzi Politecnico di Milano Advanced Network Technologies Laboratory Gestione degli indirizzi - Address Resolution Protocol (ARP) - Reverse Address Resolution Protocol (RARP) - Dynamic Host Configuration Protocol

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

Versione Italiana. Introduzione. Contenuto della confezione. Specifiche. Specifiche supplementari. BT200 - Sweex Bluetooth 2.0 Class II Adapter USB

Versione Italiana. Introduzione. Contenuto della confezione. Specifiche. Specifiche supplementari. BT200 - Sweex Bluetooth 2.0 Class II Adapter USB BT200 - Sweex Bluetooth 2.0 Class II Adapter USB Introduzione Per prima cosa desideriamo ringraziarla vivamente per aver acquistato lo Sweex Bluetooth 2.0 Adapter, l adattatore che le consentirà di creare

Dettagli

U SB M I N I ADAPTE R BLUETOOTH

U SB M I N I ADAPTE R BLUETOOTH COMMUNICATION S U PPOR T U SB M I N I ADAPTE R BLUETOOTH CLASS I I M A NUALE NI - 7075 2 0 C O M M U N I C AT I O N S U P P O R T U S B A D A P T E R B L U E T O O T H C L A S S I I P r i m a d i t u t

Dettagli

PROCEDURA DI INSTALLAZIONE DEI SOFTWARE E DEL DRIVER USB AIM

PROCEDURA DI INSTALLAZIONE DEI SOFTWARE E DEL DRIVER USB AIM PROCEDURA DI INSTALLAZIONE DEI SOFTWARE E DEL DRIVER USB AIM SOMMARIO SOMMARIO...1 Capitolo 1 Installare il software AIM ed il driver USB AIM....2 Capitolo 2 Installazione sotto Microsoft Windows XP...3

Dettagli

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo Ing. Giovanni Ponti DEIS Università della Calabria gponti@deis.unical.it La piattaforma Java mette a disposizione una serie

Dettagli

Xerox Device Agent, XDA-Lite. Guida all installazione rapida

Xerox Device Agent, XDA-Lite. Guida all installazione rapida Xerox Device Agent, XDA-Lite Guida all installazione rapida Introduzione a XDA-Lite XDA-Lite è un software di acquisizione dati dei dispositivi il cui compito principale consiste nell inviare automaticamente

Dettagli

FTP. Appunti a cura del prof. ing. Mario Catalano

FTP. Appunti a cura del prof. ing. Mario Catalano FTP Appunti a cura del prof. ing. Mario Catalano Il protocollo FTP 1/2 Attraverso il protocollo FTP (File Transfer Protocol) è possibile trasferire uno o più files di qualsiasi tipo tra due macchine 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

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

PORTALE CLIENTI Manuale utente

PORTALE CLIENTI Manuale utente PORTALE CLIENTI Manuale utente Sommario 1. Accesso al portale 2. Home Page e login 3. Area riservata 4. Pagina dettaglio procedura 5. Pagina dettaglio programma 6. Installazione dei programmi Sistema operativo

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Sharpdesk V3.3. Guida all installazione Versione 3.3.04

Sharpdesk V3.3. Guida all installazione Versione 3.3.04 Sharpdesk V3.3 Guida all installazione Versione 3.3.04 Copyright 2000-2009 di SHARP CORPORATION. Tutti i diritti riservati. È vietata la riproduzione, l adattamento o la traduzione senza previa autorizzazione

Dettagli

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

Dettagli

Guida rapida Vodafone Internet Box

Guida rapida Vodafone Internet Box Guida rapida Vodafone Internet Box Benvenuti nel mondo della connessione dati in mobilità di Vodafone Internet Box. In questa guida spieghiamo come installare e cominciare a utilizzare Vodafone Internet

Dettagli

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall I firewall Perché i firewall sono necessari Le reti odierne hanno topologie complesse LAN (local area networks) WAN (wide area networks) Accesso a Internet Le politiche di accesso cambiano a seconda della

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

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Utilizzo della chiavetta SE 50UMTS per la navigazione Web tramite PC

Utilizzo della chiavetta SE 50UMTS per la navigazione Web tramite PC Utilizzo della chiavetta SE 50UMTS per la navigazione Web tramite PC Con questa guida vediamo come utilizzare la chiavetta SE 50UMTS quadri band per navigare in internet. 1- Installazione Come prima operazione

Dettagli

Introduzione JDBC interfaccia java.sql driver caricare i driver

Introduzione JDBC interfaccia java.sql driver caricare i driver J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Aruba Sign 2 Guida rapida

Aruba Sign 2 Guida rapida Aruba Sign 2 Guida rapida 1 Indice Indice...2 1 Informazioni sul documento...3 1.1 Scopo del documento...3 2 Prerequisiti...4 2.1.1 Software...4 2.1.2 Rete...4 3 Installazione...5 Passo 2...5 4 Avvio di

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Procedura di aggiornamento del firmware Display Remoto IntellyGreenPV

Procedura di aggiornamento del firmware Display Remoto IntellyGreenPV Procedura di aggiornamento del firmware Display Remoto IntellyGreenPV 1) Introduzione Il seguente documento descrive la procedura di aggiornamento del firmware del Display Remoto IntellyGreenPV. Per eseguire

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

Il protocollo BitTorrent

Il protocollo BitTorrent 4 Università degli studi di Bari Corso di Laurea Magistrale in Informatica Sistemi Distribuiti: architetttura e modelizzazione Modulo B modellizzazione Anno Accademico 2008 2009 Modellizzazione del protocollo

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

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE

Dettagli

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica

Active Directory. Installatore LAN. Progetto per le classi V del corso di Informatica Installatore LAN Progetto per le classi V del corso di Informatica Active Directory 26/02/08 Installatore LAN - Prof.Marco Marchisotti 1 Agli albori delle reti...... nelle prime LAN era facile individuare

Dettagli

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client RETI INFORMATICHE - SPECIFICHE DI PROGETTO A.A. 2013/2014 1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014 Il progetto consiste nello sviluppo di un

Dettagli

Avvio di Internet ed esplorazione di pagine Web.

Avvio di Internet ed esplorazione di pagine Web. Incontro 1: Corso di aggiornamento sull uso di internet Avvio di Internet ed esplorazione di pagine Web. Istituto Alberghiero De Filippi Via Brambilla 15, 21100 Varese www.istitutodefilippi.it Tel: 0332-286367

Dettagli

Network Topology. Configurazione HA USG300

Network Topology. Configurazione HA USG300 Network Topology Utilizzare 2 switch diversi per gestire la parte LAN e WAN. Non sono necessari switch managed sulla parte WAN. Per la ridondanza sulla parte LAN utilizzeremo dei GS-2024 e il RSTP. Per

Dettagli

Il Web Server e il protocollo HTTP

Il Web Server e il protocollo HTTP Corso PHP Parte 2 Il Web Server e il protocollo HTTP E un programma sempre attivo che ascolta su una porta le richieste HTTP. All arrivo di una richiesta la esegue e restituisce il risultato al browser,

Dettagli

Indruduzione... 1 Il modulo Bluetooth HC-06... 2 Il firmware... 3 Collegamento della scheda... 4 Software PC e l applicazione Android...

Indruduzione... 1 Il modulo Bluetooth HC-06... 2 Il firmware... 3 Collegamento della scheda... 4 Software PC e l applicazione Android... Sommario Indruduzione... 1 Il modulo Bluetooth HC-06... 2 Il firmware... 3 Collegamento della scheda... 4 Software PC e l applicazione Android... 4 Indruduzione La scheda può controllare fino a quattro

Dettagli

FileMaker Pro 11. Esecuzione di FileMaker Pro 11 su Servizi Terminal

FileMaker Pro 11. Esecuzione di FileMaker Pro 11 su Servizi Terminal FileMaker Pro 11 Esecuzione di FileMaker Pro 11 su Servizi Terminal 2007 2010 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker

Dettagli

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO

INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO INTRODUZIONE ALLE RETI: UN APPROCCIO PRATICO okfabian@yahoo.com Fabian Chatwin Cedrati Ogni scheda di rete ha un indirizzo MAC univoco L'indirizzo IP invece viene impostato dal Sistema Operativo HUB 00:50:DA:7D:5E:32

Dettagli

Come usare P-touch Transfer Manager

Come usare P-touch Transfer Manager Come usare P-touch Transfer Manager Versione 0 ITA Introduzione Avviso importante Il contenuto di questo documento e le specifiche di questo prodotto sono soggetti a modifica senza preavviso. Brother si

Dettagli

Do-Dots Protocollo di comunicazione

Do-Dots Protocollo di comunicazione Do-Dots Protocollo di comunicazione Ultimo aggiornamento 10 maggio 2011 rev3 Spiegazioni 10/05/2011 rev2 Primo aggiornamento con attuali comandi 03/05/2011 rev1 - Stesura iniziale 14/05/2010 DOCUMENTO

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Applicazioni Web J2EE: Java Servlet Parte a versione 3.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

Dettagli

Gui Gu d i a d ra r p a i p d i a V d o a d f a one Int fone In e t r e net rnet Box Key Mini

Gui Gu d i a d ra r p a i p d i a V d o a d f a one Int fone In e t r e net rnet Box Key Mini Guida rapida Vodafone Internet Key Box Mini Ideato per Vodafone QSG_VMCLite_v31_10-2007_e172_IT.1 1 10/10/07 14:39:10 QSG_VMCLite_v31_10-2007_e172_IT.2 2 10/10/07 14:39:11 Benvenuti nel mondo della connessione

Dettagli

NOKIA 3650 COLLEGAMENTO TRAMITE IRDA. +cgdcont=1, ip, ibox.tim.it. Sul telefono: Sul PC: CONFIGURAZIONE INTERNET WINDOWS 2000 XP

NOKIA 3650 COLLEGAMENTO TRAMITE IRDA. +cgdcont=1, ip, ibox.tim.it. Sul telefono: Sul PC: CONFIGURAZIONE INTERNET WINDOWS 2000 XP NOKIA 3650 Peso: 130 g Autonomia (in conversazione): fino a 240 min Autonomia (Stand by): fino a 200 ore Dimensioni: 129.5x57.2X25.6 mm Dotazione: Batteria (Li-lon 850 mah) Caricabatteria CD-ROM per PC

Dettagli

MC-link Lan+ Connessione e configurazione del router PRESTIGE 100

MC-link Lan+ Connessione e configurazione del router PRESTIGE 100 MC-link Lan+ Connessione e configurazione del router PRESTIGE 100 Per la connessione del router PRESTIGE 100 ad un singolo computer è sufficiente rispettare il seguente schema: La connessione tra cavo

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette

Dettagli

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam. Laurea in INFORMATICA INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 Dynamic Host Configuration Protocol fausto.marcantoni@unicam.it Prima di iniziare... Gli indirizzi IP privati possono essere

Dettagli

Schema Tipologia a Stella

Schema Tipologia a Stella Cos'e' esattamente una rete! Una LAN (Local Area Network) è un insieme di dispositivi informatici collegati fra loro, che utilizzano un linguaggio che consente a ciascuno di essi di scambiare informazioni.

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

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

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio

Dettagli

Gestione degli indirizzi

Gestione degli indirizzi Politecnico di Milano Facoltà di Ingegneria dell Informazione Gestione degli indirizzi -Address Resolution Protocol (ARP) -Reverse Address Resolution Protocol (RARP) -Dynamic Host Configuration Protocol

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

Manuale utente. Quinx Box serie 200/300/400. Ethernet RS232 - TCP/IP converter

Manuale utente. Quinx Box serie 200/300/400. Ethernet RS232 - TCP/IP converter Manuale utente Quinx Box serie 200/300/400 Ethernet RS232 - TCP/IP converter A cura di: ICG Holding srl Div. Time & Access Via Leonardo da Vinci 45/47 20020 Lainate (MI) Nr. rif. Q 200 001 Versione 1.10.97

Dettagli

Sharpdesk V3.3. Guida all installazione Versione 3.3.07

Sharpdesk V3.3. Guida all installazione Versione 3.3.07 Sharpdesk V3.3 Guida all installazione Versione 3.3.07 Copyright 2000-2009 di SHARP CORPORATION. Tutti i diritti riservati. È vietata la riproduzione, l adattamento o la traduzione senza previa autorizzazione

Dettagli

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti 20120300 INDICE 1. Introduzione... 3 2. Consultazione... 4 2.1 Consultazione Server Fidati... 4 2.2 Consultazione Servizi Client... 5 2.3 Consultazione Stato richieste... 5 3. Amministrazione... 6 3.1

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli