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

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

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

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

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

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

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso

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

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo. In una rete di ampie dimensioni, ciascuna sottorete (es. LAN, WAN) è connessa ad altre sottoreti tramite router. Internet è un insieme di reti connesse tra loro. Essenzialmente, in una rete alcune macchine

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

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

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Protocolli di rete Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Configurazione statica e dinamica

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

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

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it

Introduzione ai Device Drivers in Linux. E.Mumolo, DEEI mumolo@units.it Introduzione ai Device Drivers in Linux E.Mumolo, DEEI mumolo@units.it 1 Device Drivers Moduli software che gestiscono le periferiche attraverso il file system Tutte le periferiche sono viste come file

Dettagli

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute DNS: Domain Name System I name DNS Persone: identificatori: CF, nome, Numero di Passaporto Host e router Internet: Indirizzo IP ( bit) - usato per instradare i pacchetti nome, per es., massimotto.diiie.unisa.it

Dettagli

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment

Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio. IDE = Integrated Development Environment Bloodshed Dev-C++ Bloodshed Dev-C++ è l IDE usato durante le esercitazioni/laboratorio IDE = Integrated Development Environment Gerardo Pelosi 01 Ottobre 2014 Pagina 1 di 8 Dev-C++ - Installazione Potete

Dettagli

PRESENTAZIONE DI UN SMS AL GATEWAY

PRESENTAZIONE DI UN SMS AL GATEWAY Interfaccia Full Ascii Con questa interfaccia è possibile inviare i dati al Server utilizzando solo caratteri Ascii rappresentabili e solo i valori che cambiano tra un sms e l altro, mantenendo la connessione

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

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi:

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Routing (instradamento) in Internet Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi: Stub AS: istituzione piccola Multihomed AS: grande istituzione (nessun ( transito Transit AS: provider

Dettagli

corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi

corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi Prof. S.Pizzutilo Elementi

Dettagli

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN per Expert NANO 2ZN Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie Expert NANO 2ZN Nome documento: MODBUS-RTU_NANO_2ZN_01-12_ITA Software installato: NANO_2ZN.hex

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi II Semestre - Marzo/Giugno 2008 Matricole congr. 0 mod 3 File & Directory #include #include stat,fstat e lstat int stat (const char *pathname, struct stat *buf); int fstat (int

Dettagli

IL LINGUAGGIO C++ Configurazione di Dev-C++

IL LINGUAGGIO C++ Configurazione di Dev-C++ IL LINGUAGGIO C++ Note sull'uso di DevC++ Requisiti di sistema per Dev-C++ - Sistema operativo Microsoft Windows 95, 98, Millenium Edition, NT 4, 2000 o XP - RAM: 8 Mb (consigliati almeno 32 Mb) - CPU:

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

Dettagli

Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono","e-mail"}; //nomi delle colonne della tabella

Finestra.java. static String nomicolonne[] = {ind.,cognome,nome,telefono,e-mail}; //nomi delle colonne della tabella import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.windowevent; import java.awt.event.windowlistener; import java.io.*; import java.util.*;

Dettagli

GLI ERRORI DI OUTLOOK EXPRESS

GLI ERRORI DI OUTLOOK EXPRESS Page 1 of 6 GLI ERRORI DI OUTLOOK EXPRESS 1) Impossibile inviare il messaggio. Uno dei destinatari non è stato accettato dal server. L'indirizzo di posta elettronica non accettato è "user@dominio altro

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Windows Compatibilità

Windows Compatibilità Che novità? Windows Compatibilità CODESOFT 2014 é compatibile con Windows 8.1 e Windows Server 2012 R2 CODESOFT 2014 Compatibilità sistemi operativi: Windows 8 / Windows 8.1 Windows Server 2012 / Windows

Dettagli

Zeroshell come client OpenVPN

Zeroshell come client OpenVPN Zeroshell come client OpenVPN (di un server OpenVpn Linux) Le funzionalità di stabilire connessioni VPN di Zeroshell vede come scenario solito Zeroshell sia come client sia come server e per scelta architetturale,

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli

Dettagli

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless

La configurazione degli indirizzi IP. Configurazione statica, con DHCP, e stateless La configurazione degli indirizzi IP Configurazione statica, con DHCP, e stateless 1 Parametri essenziali per una stazione IP Parametri obbligatori Indirizzo IP Netmask Parametri formalmente non obbligatori,

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Test di comunicazione tra due LOGO! 0BA7: Master - Master

Test di comunicazione tra due LOGO! 0BA7: Master - Master Industry Test di comunicazione tra due LOGO! 0BA7: Master - Master Dispositivi utilizzati: - 2 LOGO! 0BA7 (6ED1 052-1MD00-0AB7) - Scalance X-208 LOGO! 0BA7 Client IP: 192.168.0.1 LOGO! 0BA7 Server IP:

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Sicurezza delle reti wireless. Alberto Gianoli alberto.gianoli@fe.infn.it

Sicurezza delle reti wireless. Alberto Gianoli alberto.gianoli@fe.infn.it Sicurezza delle reti wireless Alberto Gianoli alberto.gianoli@fe.infn.it Concetti di base IEEE 802.11: famiglia di standard tra cui: 802.11a, b, g: physical e max data rate spec. 802.11e: QoS (traffic

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

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

Guida alla scansione su FTP

Guida alla scansione su FTP Guida alla scansione su FTP Per ottenere informazioni di base sulla rete e sulle funzionalità di rete avanzate della macchina Brother, consultare la uu Guida dell'utente in rete. Per ottenere informazioni

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

CARATTERISTICHE DELLE CRYPTO BOX

CARATTERISTICHE DELLE CRYPTO BOX Secure Stream PANORAMICA Il sistema Secure Stream è costituito da due appliance (Crypto BOX) in grado di stabilire tra loro un collegamento sicuro. Le Crypto BOX sono dei veri e propri router in grado

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

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

Configurazioni Mobile Connect

Configurazioni Mobile Connect Mailconnect Mail.2 L EVOLUZIONE DELLA POSTA ELETTRONICA Configurazioni Mobile Connect iphone MOBILE CONNECT CONFIGURAZIONE MOBILE CONNECT PER IPHONE CONFIGURAZIONE IMAP PER IPHONE RUBRICA CONTATTI E IPHONE

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

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

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

Dettagli

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Inter Process Communication (IPC) in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Inter Process Communication (IPC) in POSIX E.Mumolo, DEEI mumolo@units.it Pipe Cos'è un pipe? E' un canale di comunicazione che unisce due processi Caratteristiche: La più vecchia

Dettagli

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it

SMS API. Documentazione Tecnica YouSMS SOAP API. YouSMS Evet Limited 2015 http://www.yousms.it SMS API Documentazione Tecnica YouSMS SOAP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione

Dettagli

Manuale installazione KNOS

Manuale installazione KNOS Manuale installazione KNOS 1. PREREQUISITI... 3 1.1 PIATTAFORME CLIENT... 3 1.2 PIATTAFORME SERVER... 3 1.3 PIATTAFORME DATABASE... 3 1.4 ALTRE APPLICAZIONI LATO SERVER... 3 1.5 ALTRE APPLICAZIONI LATO

Dettagli

Inter-Process Communication

Inter-Process Communication Inter-Process Communication C. Baroglio a.a. 2002-2003 1 Introduzione In Unix i processi possono essere sincronizzati utilizzando strutture dati speciali, appartenti al pacchetto IPC (inter-process communication).

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

La protezione dai memory error exploit

La protezione dai memory error exploit Università degli Studi di Milano Sommario Introduzione 1 Stack Guard Terminator Canaries Random Canaries 2 3 Buffer Overflow Stack Guard Introduzione Buffer Overflow Condizione anomala. Memorizzazione

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

Socket per TCP: Fondamenti

Socket per TCP: Fondamenti Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette

Dettagli

NetMonitor. Micro guida all uso per la versione 1.2.0 di NetMonitor

NetMonitor. Micro guida all uso per la versione 1.2.0 di NetMonitor NetMonitor Micro guida all uso per la versione 1.2.0 di NetMonitor Cos è NetMonitor? NetMonitor è un piccolo software per il monitoraggio dei dispositivi in rete. Permette di avere una panoramica sui dispositivi

Dettagli

Interfaccia Web per customizzare l interfaccia dei terminali e

Interfaccia Web per customizzare l interfaccia dei terminali e SIP - Session Initiation Protocol Il protocollo SIP (RFC 2543) è un protocollo di segnalazione e controllo in architettura peer-to-peer che opera al livello delle applicazioni e quindi sviluppato per stabilire

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

Servizi DNS - SMTP FTP - TELNET. Programmi. Outlook Express Internet Explorer

Servizi DNS - SMTP FTP - TELNET. Programmi. Outlook Express Internet Explorer Servizi DNS - SMTP FTP - TELNET Programmi Outlook Express Internet Explorer 72 DNS Poiché riferirsi a una risorsa (sia essa un host oppure l'indirizzo di posta elettronica di un utente) utilizzando un

Dettagli

Zabbix 4 Dummies. Dimitri Bellini, Zabbix Trainer Quadrata.it

Zabbix 4 Dummies. Dimitri Bellini, Zabbix Trainer Quadrata.it Zabbix 4 Dummies Dimitri Bellini, Zabbix Trainer Quadrata.it Relatore Nome: Biografia: Dimitri Bellini Decennale esperienza su sistemi operativi UX based, Storage Area Network, Array Management e tutto

Dettagli

Progettare network AirPort con Utility AirPort. Mac OS X v10.5 + Windows

Progettare network AirPort con Utility AirPort. Mac OS X v10.5 + Windows Progettare network AirPort con Utility AirPort Mac OS X v10.5 + Windows 1 Indice Capitolo 1 3 Introduzione a AirPort 5 Configurare un dispositivo wireless Apple per l accesso a Internet tramite Utility

Dettagli

Rational Asset Manager, versione 7.1

Rational Asset Manager, versione 7.1 Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Note Prima di utilizzare queste informazioni e il prodotto

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

Meetecho s.r.l. Web Conferencing and Collaboration tools. Guida all installazione e all uso di Meetecho beta

Meetecho s.r.l. Web Conferencing and Collaboration tools. Guida all installazione e all uso di Meetecho beta Web Conferencing and Collaboration tools Passo 1: registrazione presso il sito Accedere al sito www.meetecho.com e registrarsi tramite l apposito form presente nella sezione Reserved Area. In fase di registrazione

Dettagli

Web Conferencing Open Source

Web Conferencing Open Source Web Conferencing Open Source A cura di Giuseppe Maugeri g.maugeri@bembughi.org 1 Cos è BigBlueButton? Sistema di Web Conferencing Open Source Basato su più di quattordici componenti Open-Source. Fornisce

Dettagli

MailStore Proxy è disponibile gratuitamente per tutti i clienti di MailStore Server all indirizzo http://www.mailstore.com/en/downloads.

MailStore Proxy è disponibile gratuitamente per tutti i clienti di MailStore Server all indirizzo http://www.mailstore.com/en/downloads. MailStore Proxy Con MailStore Proxy, il server proxy di MailStore, è possibile archiviare i messaggi in modo automatico al momento dell invio/ricezione. I pro e i contro di questa procedura vengono esaminati

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP

MIB PER IL CONTROLLO DELLO STATO DI UN SERVER FTP Università degli Studi di Pisa Facoltà di Scienze Matematiche,Fisiche e Naturali Corso di Laurea in Informatica Michela Chiucini MIB PER IL CONTROLLO DELLO STATO DI UN SERVER

Dettagli

Funzioni nuove e modificate

Funzioni nuove e modificate Gigaset S675 IP, S685 IP, C470 IP, C475 IP: Funzioni nuove e modificate Questo documento integra il manuale di istruzioni dei telefoni VoIP Gigaset: Gigaset C470 IP, Gigaset C475 IP, Gigaset S675 IP e

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

BPEL: Business Process Execution Language

BPEL: Business Process Execution Language Ingegneria dei processi aziendali BPEL: Business Process Execution Language Ghilardi Dario 753708 Manenti Andrea 755454 Docente: Prof. Ernesto Damiani BPEL - definizione Business Process Execution Language

Dettagli

File e Directory. M. Guarracino - File e Directory 1

File e Directory. M. Guarracino - File e Directory 1 File e Directory M. Guarracino - File e Directory 1 File e Directory Abbiamo visto come si possono utilizzare funzioni di I/O per i file: open, read, write, lseek e close Vogliamo ora analizzare ulteriori

Dettagli

Istruzioni per l uso Guida software

Istruzioni per l uso Guida software Istruzioni per l uso Guida software Leggere subito Manuali per questa stampante...8 Preparazione per la stampa Installazione rapida...9 Conferma del metodo di connessione...11 Connessione di rete...11

Dettagli

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.

La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email. La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare

Dettagli

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi.

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi. I server di stampa vengono utilizzati per collegare le stampanti alle reti. In tal modo, più utenti possono accedere alle stampanti dalle proprie workstation, condividendo sofisticate e costose risorse.

Dettagli

TeamViewer 8 Manuale Controllo remoto

TeamViewer 8 Manuale Controllo remoto TeamViewer 8 Manuale Controllo remoto Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 6 1.1 Informazioni sul software... 6

Dettagli

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java]

Laboratorio di Sistemi Fattoriale di un numero Jsp [Java] Desideriamo realizzare una applicazione web che ci consenta di calcolare il fattoriale di un numero. L'esercizio in sé non particolarmente difficile, tuttavia esso ci consentirà di affrontare il problema

Dettagli

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO Precisione del riconoscimento Velocità di riconoscimento Configurazione del sistema Correzione Regolazione della

Dettagli

UML Component and Deployment diagram

UML Component and Deployment diagram UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania I diagrammi UML Classificazione

Dettagli

[HOSTING] Shared (S) Entry (S) Professional (S) VPS (S) [CF] Cold Fusion9 9,00 39,00 79,00

[HOSTING] Shared (S) Entry (S) Professional (S) VPS (S) [CF] Cold Fusion9 9,00 39,00 79,00 [HOSTING] Shared (S) Entry (S) Professional (S) VPS (S) [CF] Cold Fusion9 9,00 39,00 79,00 [CF] Domain & Space - Dominio di 2 Liv. (.IT,.COM) 1 1 1 - Dominio di 3 Liv. (mapping IIS/Apache) 1 10 100 - Disk

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

APPLICAZIONI SU PIU FILE

APPLICAZIONI SU PIU FILE APPLICAZIONI SU PIU FILE Serve poter sviluppare applicazioni su piú file: - alcune funzioni e alcune definizioni di dati in un file - altre funzioni e dati in file diversi Perché?? 1. Se il programma è

Dettagli

Alb@conference GO e Web Tools

Alb@conference GO e Web Tools Alb@conference GO e Web Tools Crea riunioni virtuali sempre più efficaci Strumenti Web di Alb@conference GO Guida Utente Avanzata Alb@conference GO Per partecipare ad un audioconferenza online con Alb@conference

Dettagli

Serduino - SERRA CON ARDUINO

Serduino - SERRA CON ARDUINO Serduino - SERRA CON ARDUINO 1 Componenti Facchini Riccardo (responsabile parte hardware) Guglielmetti Andrea (responsabile parte software) Laurenti Lorenzo (progettazione hardware) Rigolli Andrea (reparto

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Le Stringhe. Un introduzione operativa. Luigi Palopoli Le Stringhe p.1/19 Le Stringhe Un introduzione operativa Luigi Palopoli ReTiS Lab - Scuola Superiore S. Anna Viale Rinaldo Piaggio 34 Pontedera - Pisa Tel. 050-883444 Email: palopoli@sssup.it URL: http://feanor.sssup.it/

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Fondamenti di Informatica T. Linguaggio C: File

Fondamenti di Informatica T. Linguaggio C: File Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.

Dettagli

TeamViewer 7 Manuale Controllo remoto

TeamViewer 7 Manuale Controllo remoto TeamViewer 7 Manuale Controllo remoto TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni sul

Dettagli