1 1 Musikprogrammering och mobil ljuddesign Föreläsning 4 Kommunikation över nätverk – UDP och MaxMSP.

Slides:



Advertisements
Liknande presentationer
-en översiktlig beskrivning
Advertisements

Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Avlusning Debugger (”avlusare”) Breakpoints Watch.
Relationsdatabasdesign
En introduktion till ’Hård Infrastruktur’
Frågor Allmän IT-kunskap avsnitt 1 kapitel 1 Repetition 4
Maria Kihl och Jens A Andersson Kapitel 9: Applikationer.
Lektion 6 Mahmud Al Hakim
Mjukvara och nätverk Vad är det?.
Klasser och objekt.
Leif Håkansson’s Square Dancer Rotation
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Datornätverk A – lektion 2
MS Excel 2010 – Dag 1 Mahmud Al Hakim. Kursens innehåll 2 DagInnehåll 1 Introduktion till Excel 2010 Hantera arbetsböcker Formler Formatering Litteratur:
Nätverk och Java, grunder Föreläsning 6
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
Filhantering Grundprincipen för filhantering Öppna filen
Network Addressing (Nätverksadressering)
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
Metoder i java Det finns två typer av metoder i java
Nätverkskommunikation
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
Next previous Innehåll Inledning Några enkla exempel Pekare till och kort beskrivning av större exempel Speciella referenser (som används i marginalen)
Java Nätverks API URL sockets.
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
NÄTVERKSPROTOKOLL Föreläsning
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Internet Styrdatorer och kablar Uppkopplade användare Servrar 182.QRZN.
Lektion 3 Mahmud Al Hakim
DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim
TÄNK PÅ ETT HELTAL MELLAN 1-50
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Best pictures on the internet 2007 Awards 1http:// Är vänsteralliansen trovärdig i Norrköping.
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
IT för personligt arbete F9 Datalogi, en sammanfattning DSV Peter Mozelius.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Operating Systems Networking for Home and Small Businesses – Chapter.
Best pictures on the internet 2007 Awards 1http:// (s), (v), och (mp) i Norrköping, gillar inte att vi använder grundlagarna.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
Föreläsning 14 ”Enkel” Filhantering.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Network Services Networking for Home and Small Businesses – Chapter.
UDP Pålitlig byteström TCP
Network Services (Nätverkstjänster) Client/Servers And Their Interaction (Client/Server och deras interaktion)
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
1 Windows Azure Mikael ÖstbergTorkel Ödegaard. 2 Äshur Ashore Azzuure.
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - DHCP (Dynamic Host Configuration Protocol)‏
6558/G558 DATAKOMMUNIKATION Jan Westerholm hösten 2005 / andra perioden.
1 Sockets Traditionellt har UNIX varit svag på IPC, InterProcess Communication. I augusti 1983 kom en ny IPC-mekanism i 4.2BSD som var enkel om konsistent.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
NÄTVERKSPROTOKOLL Föreläsning
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
När infaller Julafton och hur ofta?
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 2 ( )‏ Innehåll:Trådar: - Avbrott (”interrupts”)‏ - Metoden join()‏ Högnivå objekt för.
Nätverk.
Kapitel 2 forts – Nätverksmodeller Kapitel 1 - Introduktion
RMI Av: Josefina & Sarah DS04.
Nätverkskommunikation
10 Kommunikation i Java Skansholm kap 18
Presentationens avskrift:

1 1 Musikprogrammering och mobil ljuddesign Föreläsning 4 Kommunikation över nätverk – UDP och MaxMSP

2 2 Kommunikation över nätverk Innehåll, repetitioner, samt mer om –Översikt –Protokoll –Sockets –Javastöd Litteratur: –föreläsningen kommer i första hand utgå från Sun’s tutorials på –I kursboken svarar detta ungefär mot: 24.4  –Utöver detta bygger föreläsningen på eget framtaget material –Dessutom MaxMSP-exempel

3 3 Introduktion till protokoll Då datorer kommunicerar med varandra över internet används vanligtvis en av två följande protokoll –TCP –UDP

4 4 Introduktion till protokoll, forts. Distribuerad kommunikation baseras egentligen till lager av på varandra specificerade protokoll Ett övre protokoll är beroende av definition av det undre lagret Ofta har man även applikationsspecifika protokoll (ska se mer av det senare)

5 5 Introduktion till protokoll och javastöd. När man skriver javaprogram som kommunicerar över nätverk, så programmerar man på en applikationsnivå. Man behöver då vanligtvis inte känna till något om hur lagren för TCP eller UDP fungerar i detalj. Vad man gör dock är att man använder klasser ur paketet java.net. Dessa klasser ger plattformsoberoende stöd för nätverkskommunikation. Dock, klasserna för TCP respektive UDP är olika och man behöver ändå känna till något om skillnader i protokollens egenskaper då man väljer klasserna som stöder TCP respektive UDP.

6 6 TCP - UDP TCP –TCP (Transmission Control Protocol) is a connection-based protocol that provides a reliable flow of data between two computers. –TCP används för flera kända applikationer, så som FTP, Telnet, HTTP UDP –UDP (User Datagram Protocol) is a protocol that sends independent packets of data, called datagrams, from one computer to another with no guarantees about arrival. UDP is not connection- based like TCP. –Vi kommer att se mer av UDP idag

7 7 TCP – UDP, forts. Ytterligare om skillnader mellan TCP och UDP –TCP Lagret för transport av datapaket sköts av TCP självt Säkerhet kring att paketen kommer fram och i rätt ordning Minus för den tid som krävs för kontroll och återställning –UDP Lägre säkerhet kring att paketen kommer fram och i rätt ordning Dock, mindre tidsåtgång för att hantera kommunikationen Val av protokoll –TCP, är det vanligast förekommande valet. Speciellt då strömmen av data man skickar ska vara samma i andra änden och där tidsåtgången är mindre viktig –UDP, kan vara ett alternativ vid styrning av realtidssystem då man känner sitt nätverk, eller i övrigt då man har större realtidskrav. Vad gäller för sammanhang av ljudöverföring?

8 8 Klasser typiskt för TCP-baserad kommunikation En socket är en ändpunkt i en tvåvägskommunikation mellan två program som kör på ett nätverk. Klasser för sockets används för att representera kopplingen mellan ett klientprogram och ett serverprogram Det javabaserade paketet ’java.net’ tillhandahåller två klasser, ’Socket’ och ’ServerSocket’ som implementerar klient- respektive serversidan av en uppkoppling.

9 9 Klasser typiskt för UDP-baserad kommunikation För UDP-baserad kommunikation används –DatagramPacket, svarar mot ett paket med fullständing info om mottagaren –DatagramSocket, representerar sockets för att sända och ta emot ’datagrampaket’. –MulticastSocket, representerar sockets för att sända och ta emot ’datagrampaket’, där mottagare kan vara en grupp. ’Multicast’ och ’Broadcast’ svarar typiskt mot att sända till flera mottagare i en enda sändning

10 Angående datagram Definition: A datagram is an independent, self- contained message sent over the network whose arrival, arrival time, and content are not guaranteed. Vad detta innebär är alltså att paketet självt innehåller all den information det behöver för att kunna skickas från en sändare till en mottagare. Dock, sett över hela strömmen av paket, så finns en inneboende otillförlitlighet i detta.

11 Illustration

12 Angående datagram, översikt Se även

13 Angående datagram, översikt, forts Attribut –byte[] buf, buffert med ett antal bytes av ospecificerad typ –int length, längd på buffert = antal bytes –InetAddress address, adress för datagrampaketet, typiskt adress på mottagare –int port, port för datagrampaketet, typiskt port på mottagarsidan

14 Angående datagram, översikt, forts Konstruktorer –DatagramPacket(byte[] buf, int length, InetAddress address, int port), för att skapa ett paket, typiskt med en känd destinationsadress. –DatagramPacket(byte[] buf, int length), för att skapa ett paket, typiskt då adressen är okänd, eller fylls i implicit.

15 Angående datagram, översikt, forts Metoder –InetAddress getAddress(), returnerar internetadressen för ett datagrampaket –int getPort(), returnerar portnummer för ett datagrampaket –byte[] getData(), returnerar det egentliga innehållet för ett datagrampaket –int getLength(), returnerar storleken på det egentliga innehållet för ett datagrampaket

16 Angående DatagramSocket En DatagramSocket är en socketlösning för UDP Som en socket för TCP, –Men för kommunikation med DatagramPackets –Specar inte destinationsadress, denna finns ju som en del av det Datagrampaket man skickar –Ser lika ut på klient- och serversidan –Finns inget alternativ till ServerSocket

17 Illustration Se även

18 Angående DatagramSocket, forts. Konstruktorer och metoder –DatagramSocket(), skapar en socket och väljer en ledig port att kommunicera över –DatagramSocket(int port), skapar en socket som komunicerar över porten med portnummer port –send(DatagramPacket p), skickar ett datagrampaket, destinationen definieras av paketet –receive(DatagramPacket p), tar emot ett datagrampaket via parameter p

19 Exempel En server tillhandahåller ’dagens citat’, Kommentar: Dessa är lagrade i en fil med texter (rader med String). Detta kräver i sin tur en konvertering från String till en byte-sekvens En klient efterfrågar dessa Kommentar: Citat skrivs ut som en text (String). Kräver i sin tur en konvertering från en byte- sekvens till en String

20 Informellt diagram, serversidan Textfil med citat

21 Informellt diagram, klientsidan

22 Filer som ingår i exemplet QuoteServer, javaklass med main på serversidan QuoteServerThread, javaklass med serversidans socket, läser även från citatfilen one_liners.txt, textfil med ett citat per rad QuoteClient, javaklass med klientsidans socket

23 Distribuerad kommunikation Exemplet börjar med att kommunicera över local host För att kommunicera över nätverk behöver man känna till, inte bara portnummer för servern, utan även IP- adressen

24 Metoder för adresser Se DatagramSocket från java.net, sidan DatagramSocket – InetAddress getLocalAddress() Gets the local address to which the socket is bound.InetAddressgetLocalAddress

25 Något om MaxMSP och nätverkskommunikation MaxMSP ger stöd för UDP-baserad kommunikation över nätverk Exempelvis –Kör igång MaxMSP –File  New  Patcher –Högerklicka i ytan  New Object  Devices  udpreceive –Med objektet markerat, Högerklicka på objektet  Help

26 Exempel med udpreceive - udpsend Exemplet visar hur två delar kommunicerar med varandra –Send, sänder olika typer av data över local host och mot port 7400 eller 7401 –Receive, tar emot input på port 7400 eller 7401 och skriver ut indata

27 Java och MaxMSP Går det nu att kombinera java med UDP- baserad kommunikation och MaxMSP? –UDP är ett allmänt protokoll som inte är beroende av språk eller plattform Exempel –Låt udpsend sända till port 7401, ställs in i MaxMSP –Låt javaprogram ta emot på port 7401 och sända indata till 7400 –Låt udpreceive ta emot på port 7400 och skriva ut indata, ställs in i MaxMSP

28 Javaprogrammet – skiss maxMSPSocket = new DatagramSocket(7401); byte[] buf = new byte[2048]; // Ta emot från MaxMSP-sender DatagramPacket packet = new DatagramPacket(buf, buf.length); maxMSPSocket.receive(packet); // Skicka till MaxMSP-Receiver packet.setAddress(InetAddress.getLocalHost()); packet.setPort(7400); maxMSPSocket.send(packet);

29 Kommunikation över nätverk Genom att ersätta local host i packet.setAddress(InetAddress.getLocalHost()); med en adress till annan dator kan man styra varandras MaxMSP-patchar Detta går visserligen utan java, men med kopplingen MaxMSP och java, har man tillgång till en mera generell programmeringmiljö, med grafiska gränssnitt och annat.

30 Ytterligare ett exempel Kan man skapa ett system för att spela på varandras MaxMSP-patchar över nätet? –Studera exempel med ’ljudande’ MaxMSP- patch –Studera exempel med javaprogram för nätverksbaserad kommunikation

31 Uppgift Utveckla exemplet mot ett system där man kan logga in på en server för att spela med andra, man spelar alltså både på sin egen och andras patchar Man får alltså ett system för distribuerad jamming Att tänka på –Hur beskriva systemets arkitetur? –Hur kan GUIs/TUIs tänkas se ut? –Hur beskriva applikationens protokoll? –Hur bygger man sina MaxMSP-patchar? –Hur kommunicerar man med MaxMSP-patcharna?