Datainsamling över Internet



Relevanta dokument
Datakommunika,on på Internet

Datakommunika,on på Internet

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

TCP/IP och Internetadressering

ANVÄNDAR-GUIDE för Bränneriets LAN

USB till COM-port. Inlämningsuppgift 10b USB till COM-port. Här ska du: Installera en konverterare mellan gränssnitten USB och RS232 (COM-port).

Telia Connect för Windows

Grundläggande datavetenskap, 4p

Skärmbilden i Netscape Navigator

ÅTVID.NET Startinstruktioner

Compose Connect. Hosted Exchange

Win95/98 Nätverks Kompendium. av DRIFTGRUPPEN

Webbserver och HTML-sidor i E1000 KI

Övningar - Datorkommunikation

INNEHÅLL. Konfigurering av SQL Server. Egenskaper Kommunikationsprotokoll

IT för personligt arbete F2

VPN (PPTP) installationsguide för Windows 7

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

Instruktioner för Internetanslutning

Installation av. Vitec Online

Startanvisning för Bornets Internet

Projekt i Nätverksprogrammering. MegaNet Handledare: Pierre Nugues

Bordermail instruktionsmanual

Använda bärbar dator som operatörspanel

FIRSTCLASS. Innehåll:

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Installationsguide Junos Pulse för MAC OS X

Mattias Wiggberg 1. Orientera på Internet. IP-adress. IP-adresserna räcker inte... Mer om IP-adresser

E-post. A. Windows Mail. Öppna alternativ. Placera ikonen på skrivbordet.

Hur BitTorrent fungerar

VERSION 3.2 KLIENTMANUAL NETALERT CS

Din guide till. Klientinstallation MS Driftservice

Konfigurering av eduroam

Svensk version. Inledning. Installation av Windows XP och Vista. LW056V2 Sweex trådlös LAN cardbus-adapter 54 Mbps

MRD Industriell 3G-Router KI00283C

Grundläggande nätverksteknik. F2: Kapitel 2 och 3

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: Skola: DSV

Laboration i Datakommunikation - Introduktion till Sockets och TCP/IP

Webbservrar, severskript & webbproduktion

PDA-applikationer med.net

Snabbguide IP-kamera Kom igång med din kamera

ELMIA WLAN (INTERNET)

Installationsguide / Användarmanual

Svensk version. Inledning. Installation av maskinvara. Installation av Windows XP. LW057V2 Sweex trådlösa LAN PCI-kort 54 Mbps

5. Internet, TCP/IP och Applikationer

Svensk version. Installation av Windows XP och Vista. LW311 Sweex trådlösa LAN Cardbus-adapter 300 Mbps

Hjälpprotokoll till IP

Inlämningsuppgift 11e Nätvärksskrivare

Laboration i ett applikationsprotokoll

Beskrivning av hur du ansluter en E-terminal från Beijer Electronics till HC900 via Ethernet så att denna kan visa och manipulera data i HC900.

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

SNABBGUIDE för Windows Media Encoder (media kodaren) - Sänd live med din webbkamera

Instruktion för användande av Citrix MetaFrame

Anslutning till unixsystem från windowslabben

Installera SoS2000. Kapitel 2 Installation Innehåll

JobOffice SQL databas på server

LABORATIONSRAPPORT Säkerhet och Sårbarhet Laboration 1 Brandväggar

Parallella jobb ctrl-z emacs & more README ctrl-z jobs. %<jobnr>

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

Innehåll. Dokumentet gäller från och med version

Föreläsning 5: Stora datanät Från användare till användare ARP

1 PROTOKOLL. Nätverk. Agenda. Jonas Sjöström

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Installation och setup av Net-controller AXCARD DS-202

Så här gör du för att lägga till nytt e-postkonto i Windows 8. Öppna E-post från startskärmen.

Ladda upp filer fra n PLC till PC

Manual för fjärrinloggning

Proxy. Krishna Tateneni Översättare: Stefan Asserhäll

Konfiguration övriga klienter

Capitex dataservertjänst

Tentamen i Datorkommunikation den 10 mars 2014

KomSys Hela kursen på en föreläsning ;-) Jens A Andersson

Objektorienterad programmering i Java I

Innehåll. Installationsguide

Allt om datalogging och datakommunikation!

WWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP

5 Internet, TCP/IP och Tillämpningar

Installationsanvisningar fiberstream (LAN) Version 1.0

Topologi. Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

1 Översikt. 1.1 Koncept 1 (19) Tomas Rook Dokument typ Rev. Manual

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

Innehållsförteckning:

Projektrapport. MegaLoad. Nätverksprogrammering EDA

Ethernet kommunikation med hjälp av optionskortet OPT-CI

Fjärruppkoppling med MRD Industriell 3G-Router KI00282A

Manual licenserver. Installations och konfigurations-manual för Adtollo licenserver

IP-baserade program. Telnet

Webbgenvägar. Krishna Tateneni Yves Arrouye Översättare: Stefan Asserhäll

Nätverk och Java, grunder Föreläsning 0: 0: Introduktion till Internet

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

ARX på Windows Vista, Windows 7 eller Windows 2008 server

INTERNET HUR FUNGERAR DET OCH VAD KAN MAN GÖRA MED DET?

Instruktioner för uppdatering från Ethiris 4.10 till 5.x

Detta dokument beskriver enbart konfigurering av FX3U-ENET för att programmera/monitorera via Ethernet.

Instruktion för användande av Citrix MetaFrame

LAN Port: 4 X RJ45 10/100BASE-TX Fast Ethernet med Auto MDI/MDIX. Resetknapp: Återställer enheten till fabriks inställningar

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Installation av StruSofts låne-licensserver (nätverkslicens)

Transkript:

Datainsamling över Internet I den här uppgiften skall du styra ett mätförlopp och hämta mätdata via internet. Från en dator skall du styra en annan dator och beordra den att utföra en mätning och skicka tillbaka mätdata. En sådan konfiguration brukar kallas Clien-Server, där klienten är den dator som styr processen och servern är den dator som utför klientens order. Uppgiften är att göra en temperaturmätning med en enchipsdator och skicka mätvärdet över internet till en klientdator någon annan stans i världen. Enchipsdatorn med temperaturmätaren sitter ansluten till en serverdator och kommunicerar med den via RS-232. Servern skickar sedan mätvärdet vidare till klienten via internet. Mätningarna initieras från klientdatorn. 1 8 Internet RS232 2 3 7 6 Klient Server Enchipsdator 4 5 Givare När man kommunicerar över internet, sker det på ett standardiserat sätt, ett s.k. protokoll. Ett protokoll beskriver hur datat skall förpackas när det skickas över internet. Beroende på vad man vill göra, använder man sig av olika protokoll. När man skickar mail kan man använda t.ex. IMAP ellet POP3- protokollen. Surfar man omkring bland hemsidor så använder man HTTP-protokollet, och när man överför filer används FTP-protokollet. I vår client-server applikation skall vi använda oss av TCP-protokollet, som är lämpligt för allmänna tillämpningar. Samtliga dessa protokoll använder sig i sin tur av ett underliggande protokoll, kallat IP-protokollet. Med TCP/IP-protokollen kan vi skicka över godtyckliga textsträngar mellan datorerna. Varje dator identifieras med ett s.k. IP-nummer, som är ett 32-bits tal. De 32 bitarna brukar skrivas i form av fyra stycken 8-bitars grupper, separerade av en punkt, och vars värden dessutom ges på decimal talbas. Ett IP-nummer kan t.ex. se ut så här: 130.237.268.32 IP-numret identifierar alltså datorn. Ofta är det praktiskt att ge datorn ett namn, t.ex Faktaruta IP: Internet Protokoll. Reglerar dataöverföringen på låg nivå TCP: Transport Control Protokol. Sköter dataöverföringen på transportnivån FTP: File Transfer Protokoll. Används vid ren filöverföring HTTP: Hypertext Transfer Protokoll. Används för läsa HTML-sidor (surfa) POP: Post Office Protokol. Avsett för mail-hantering IMAP: Internet Message Access Protokol. Hanterar mail. DNS: Domain Name Server. Översätter datornamn till IP-nummer. Per Nylén 1 2003-11-25

SERVER33. När man sedan vill kontakta en namngiven dator så kontaktas en s.k. Domain Name Server (DNS) som sitter på nätet som kan tala om vad en namngiven dator har för IP-nummer. Varje dator kan naturligtvis sköta flera internetkommunikationer samtidigt. Datorn måsta alltså kunna identifiera vilket program som skall ta emot ett datapaket som kommer in till datorn. Det sker genom att varje datapaket är märkt med ett s.k. PORT-nummer som identifierar det program som skall ta emot paketet. De olika standardprogrammen använder sig av standardiserade portnummer. T.ex. FTP använder port nummer 21 och HTTP port nummer 80. Programmen Eftersom det är två datorer som skall kommunicera med varandra, bli det två olika program som skall skrivas: ett klientprogram och ett serverprogram. Klientprogrammet etablerar kontakt med servern och begär en mätning. När nätresultatet kommer tillbaka presenteras det i klientprogrammets fönster. Serverprogrammet väntar på att bli kontaktat av klienten, och på att det kommer en order om mätning från klienten. När servern mottar en order om mätning, skickar servern ordern vidare till enchipsdatorn som utför temperaturmätningen. När mätningen är utförd skickar enchipsdatorn mätresultatet till servern, som i sin tur skickar mätresultatet vidare till klienten. Sändare Uppk oppling Datablock 1 Datablock 2 Mottagare För att hantera datakommunikationen över internet använder vi oss av protokollet TCP/IP. Det är ett protokoll av typen connection oriented, dvs själva datatransporten föregås av en uppkoppling och avslutas med en nedkoppling. Ett eller flera datablock kvitteras innan nästa block sänds.överföring med TCP/IP är säker på bekostnad av snabbheten. Nerkoppling TCP/IP använder en omfattande kvittering för att få en säker överföring Klientprogrammet Klienten använder sig av TCP/IP-klient klassen i Indy-client biblioteket, var ikon ser ut så här: För att kunna ansluta till servern måste du känna till serverns IP-nummer. Ditt program skall därför ha ett fönster i vilket man anger serverns IP-nummer. Vidare måste man känna till serverprogrammets port-nummer, så även det skall man kunna ange i ett fönster. Per Nylén 2 2003-11-25

När IP-nummer och port-nummer är kända kan man ansluta sig till servern. Det skall man göra genom att klicka på knappen Connect. Då hämtar programmet informationen om IP-nummer och port-nummer till TCP-klienten och försöker ansluta till servern. Här måste vi vara försiktiga. Det kan ju hända att det inte går att ansluta till servern, och i så fall måste vi ta hand om den felsituationen. try IdTCPClient1.Host := edserverip.text; IdTCPClient1.Port := edserverport.text; IdTCPClient1.Connect(1000); except on EIdConnectTimeout do edmessage.text:= No Connection ; Parametern (1000) anger time-out tiden i millisekunder för att ansluta. När förbindelsen är etablerad skall detta meddelas. På händelsen OnConnected skriver du just Connected to Server i meddelande-fönstret. Samtidigt aktiverar du knapparna Test, Mät och Disconnect, och av-aktiverar Exit - knappen så att man inte kan lämna programmet utan att först koppla ner förbindelsen. När man är klar med mätningarna skall man koppla ner förbindelsen. Det gör man genom att klicka på knappen DisConnect och då utförs proceduren: IdTCPClient1.Disconnect; När förbindelsen är nedkopplad skall det meddelas. Det gör du genom att på händelsen OnDisconnected ändra texten i meddelandefönstret till Disconnected samt ändra aktiveringarna för knapparna. Bl.a. skall Exit-knappen bli aktiv så att man kan avsluta programmet. Själva mätningen av temperaturen skall initieras genom att man klickar på knappen Mät. Då skickar programmet en order om mätning till servern. Det kan t.ex. ske genom att man skickar textsträngen Temp till servern. Det gör du med satsen: IdTCPClient1.WriteLn( Temp ); Därefter går programmet över till att vänta på mätresultatet. Här måste vi åter vara lite försiktiga. Det kan ju hända att servern är nere så att vi aldrig får tillbaka något mätvärde. Det felet måste vi vara beredda på och ta hand om. Därför försöker vi läsa mätresultatet och om vi får ett fel så tar vi hand om det, och ger ett vänligt felmeddelande. try Svar := IdTCPClient1.ReadLn; except //Hämta mätvärdet //Kolla fel Per Nylén 3 2003-11-25

on EIdSocketError do begin edmessage := Error: No reply ; edtemp.text:= ; Exit; end, edtemp.text:=svar; //Skriv felmeddelande //Avbryt proceduren //Skriv mätvärdet Serverprogrammet Servern använder sig av TCP/IP-server klassen i Indy-Server klassbibliotek. När programmet startar skall det först ta reda på serverdatorns IP-nummer och visa det i ett fönster så att klienten vet vilket IP-nummer som den skall etablera kontakt med. Du kan få reda på den egna datorns IP-nummer med satsen edipnummer.text:=idipwatch1.localip; där vi använt klassen IdIPWatch i klassbiblioteket Indy-Misc för att ta reda på datorns IP-nummer. Vid programstart skall programmet också visa vilket port-nummer som programmet använder sig av. Man skall givetvis undvika de nummer som standardprogrammen använder sig av. 4711 kan vara ett lämpligt nummer. Vid programstarten skall du även aktivera TCP-servern. När programmet blir kontaktat av klienten är det lämpligt att meddela det på något sätt, t.ex. genom att i formulärets meddelandefönster skriva Connected from: och sedan klientens IP-nummer. Att servern blivit kontaktad av en klient märker man genom att följande händelse (event) inträffar: IdServer1Connect Klientens IP-nummer ges som en sträng av: AThread.Connection.Socket.Binding.PeerIP När klienten slutligen kopplar ifrån, sker händelsen Disconnect och då skall du skriva Client Disconnected i meddelandefönstret. För att utföra de olika servicearna som klienten skickar kommandon om, börjar vi med att definiera de olika kommandon som klienten kan skicka. De är i allmänhet textsträngar, eventuellt med parametrar. Markera IdTCPServer1 och titta på det objektets properties. Där finns en som heter CommandHandlers. Markera den egenskapen och klicka på dess knapp med fyra punkter. Per Nylén 4 2003-11-25

Då öppnas dess CommandHandler Editor, och den är tom från början. Där lägger du till ett nytt kommando. Nu skall vi tala om vad det är för kommando från klienten som skall starta detta kommando. Det gör du genom att klicka på kommandot i kommandoeditorn så att det blir blåmarkerat. Då kommer det kommandot upp i Delphi s objektinspektor. Där skriver du in att denna CommandHandlers kommando är Temp. Det bestämde vi ju redan när vi skrev klientprogrammet. Nu skall vi tala om vad det är för åtgärder som skall vidtagas när servern får detta kommando. Det gör du genom att dubbelklicka i CommandHandler0:s event OnCommand. Då skapas en procedur (CommandHandler0Command) där du skriver de satser som servern skall utföra när den får just detta kommando: procedure TForm1.IdTCPServer1TIdCommandHandler0Command( ASender: TIdCommand); var TXT: String; begin TXT := Temperatur; //Mät temperaturen Asender.Thread.Connection.WriteLn(TXT); //Skicka temp. till klienten wtemp.text := IntToStr(T); //Skriv ut temperaturen I den här uppgiften skulle vi mäta temperaturen med hjälp av enchipsdatorn, och skicka tillbaka mätresultatet som en textsträng till klienten. Hur man utför själva temperaturmätningen finns beskrivet i uppgiften Seriekommunikation med Enchipsdatorn. Jag antar därför helt enkelt att det finns en funktion, som heter Temperatur, och som returnerar temperaturen som en sträng. Denna sträng skriver jag ut i serverprogrammets fönster och skickar tillbaka till klienten. För att testa programmet kan du ju till en början sätta strängen TXT till en fix text, t.ex 38,4, och se att kommunikationen över internet fungerar. Programmeringstips. 1. För att underlätta programutvecklingen har jag lagt in en testfunktion. Med den kan man kolla att förbindelsen mellan klienten och servern fungerar. Klienten har en extra knapp som sänder kommandot Test till servern. När servern får det kommandot, skriver den Test i temperaturfönstret och returnerar strängen OK till klienten. När klienten får tillbaka OK från servern, så visar den det i sitt temperaturfönster. 2. Du kan utveckla både klient och serverprogrammet i din dator, och provköra kommunikationen mellan programmen. Det gör ingen skillnad att de två programmen råkar köras i samma dator, det är ändå två helt skilda program som kommunicerar med varandra över TCP/IP. Per Nylén 5 2003-11-25