Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Ju, > > ist eigentlich relativ einfach. Ich weiß allerdings nicht mehr genau was ich gemacht habe und warum, > aber es funzt seit einem halben Jahr. > > <code> > //-----------------------Serverkommunikation--------------------------------- > thread xport > { > byte fifo; > hwcom.setbuf(fifo,128); > hwcom.ret(); > int i, minute; > > loop > { > wait system.minute()%2==0; > minute=system.minute(); > for i=0...1 > { > string s, send_String; > hwcom.flush(); > hwcom.put(0x0D); //startbedingung für den xport ? bin mir nicht mehr sicher > hwcom.put(0x0A); //startbedingung für den xport ? bin mir nicht mehr sicher > hwcom.print(" "); > hwcom.print("!"); > hwcom.print("Messwerte"); > hwcom.put(0x3b); > wait hwcom.ready(); > // Verbindung zum Server herstellen > hwcom.num(system.year()); > hwcom.put(0x2d); > hwcom.num(system.month()); > hwcom.put(0x2d); > hwcom.num(system.day()); > hwcom.put(0x20); > wait hwcom.ready(); > hwcom.num(system.hour()); > hwcom.put(0x3a); > hwcom.num(system.minute()); > hwcom.put(0x3a); > hwcom.num(system.second()); > hwcom.put(0x3b); > wait hwcom.ready(); > ... > u.s.w. > ... > hwcom.num(terratempboden1); > hwcom.put(0x3b); > hwcom.num(terratempboden2); > hwcom.put(0x3b); > hwcom.num(terraluft); > wait hwcom.ready(); > sleep 1000; > } > sleep 5000; > wait minute!=system.minute(); > } > } > > //-----------------------Serverkommunikation Ende---------------------------- > > </code> > > und auf dem Webserver (Linux) läuft ein Perl-Script: > (auch das ist nicht "sauber" programmiert, funzt aber) > > > #!/usr/bin/perl > > use strict; > use Socket; > use IO::Handle; > use constant MY_ECHO_PORT =>10001; > use DBI; > > > my ($bytes_out,$bytes_in) = (0,0); > > my $string; > my @array; > > my $port =shift || MY_ECHO_PORT; > my $protocol = getprotobyname('tcp'); > > my $dbname="name der Datenbank"; > my $username="Benutzername für die Datenbank"; > my $pw="Passwort"; > > my $data1 = "DBI:mysql:$dbname"; > my $data2 = DBI->connect($data1, $username, $pw); > > my $zwischenwert; > my $ipadresse; > > $SIG{'INT'} = sub > { > print STDERR "$bytes_in Bytes empfangen\n"; > exit 0; > }; > > socket(SOCK, AF_INET, SOCK_STREAM, $protocol) or > die "socket() fehlgeschlagen: $!"; > setsockopt(SOCK, SOL_SOCKET, SO_REUSEADDR,1) or > die "Kann SO_REUSEADDR nicht setztem: $!"; > > my $my_addr = sockaddr_in($port,INADDR_ANY); > bind(SOCK,$my_addr) or > die "bind() fehlgeschlagen: $!"; > > listen(SOCK,SOMAXCONN) or > die "listen() fehlgeschlagen: $!"; > > # warn "Warte auf ankommende Verbindung auf Port $port...\n"; > > while (1) > { > next unless > my $remote_addr = accept(SESSION,SOCK); > my ($port,$hisaddr) = sockaddr_in($remote_addr); > # warn "Verbindung von [",inet_ntoa($hisaddr),",$port]\n"; > > SESSION->autoflush(1); > while (<SESSION>) > { > open (FH,">empfang.txt") or die "Kann Datei nicht oeffnen: $!"; > $bytes_in += length($_); > @array = split /!/,$_; > $zwischenwert = $array[1]; > print FH $zwischenwert; > print FH inet_ntoa($hisaddr); > $ipadresse = inet_ntoa($hisaddr); > close FH; > chomp; > > } > # warn "Verbindung von [",inet_ntoa($hisaddr),",$port] beendet.\n"; > close SESSION; > @array = split /;/,$zwischenwert; > my $datum_zeit = $array[1]; > > my $sql = "INSERT INTO terrarium_daten (Datum_Zeit, Temp_Boden_1, Temp_Boden_2, > Temp_Luft, Temp_Wasser, Feuchte, Temp_Spot, Helligkeit, IP_Adresse) > VALUES ('$datum_zeit', '$array[2]', '$array[3]', '$array[4]', '$array[6]', '$array[5]', '$array[7]', > '$array[8]', '$ipadresse')"; > > my $abfr1=$data2->prepare($sql); > $abfr1->execute; > > > unlink('empfang.txt'); > > > }; > close SOCK; > > Gruß Mark >