Das nächste Entwicklertreffen findet Anfang Mai in Münster statt - weitere Infos bzw. zur Anmeldung!

raspi per TCP socket

Vom Front-End bis SOAP.

Moderator: Moderatoren

Antworten
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 375
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

raspi per TCP socket

Beitrag von Armin » Mo, 16. Mai 2016 23:08

Hallo zusammen,

ich versuche mit einen Rasperry Pi in Verbindung zu kommen.
Auf dem Raspi habe ich ein kleines C-Programm am Laufen, das einen TCP-Server bereitstellt:

Code: Alles auswählen

void error(const char *msg)
{
    perror(msg);
    exit(1);
}

int main(int argc, char *argv[])
{
     int sockfd, newsockfd, portno;
     socklen_t clilen;
     char buffer[256];
     struct sockaddr_in serv_addr, cli_addr;
     int n;
     if (argc < 2) {
         fprintf(stderr,"ERROR, no port provided\n");
         exit(1);
     }
     sockfd = socket(AF_INET, SOCK_STREAM, 0);
     if (sockfd < 0) 
        error("ERROR opening socket");
     bzero((char *) &serv_addr, sizeof(serv_addr));
     portno = atoi(argv[1]);
     serv_addr.sin_family = AF_INET;
     serv_addr.sin_addr.s_addr = INADDR_ANY;
     serv_addr.sin_port = htons(portno);
     if (bind(sockfd, (struct sockaddr *) &serv_addr,
              sizeof(serv_addr)) < 0) 
              error("ERROR on binding");
     listen(sockfd,5);
     clilen = sizeof(cli_addr);
     newsockfd = accept(sockfd, 
                 (struct sockaddr *) &cli_addr, 
                 &clilen);
     if (newsockfd < 0) 
          error("ERROR on accept");
     bzero(buffer,256);
     n = read(newsockfd,buffer,255);
     if (n < 0) error("ERROR reading from socket");
     printf("Here is the message: %s\n",buffer);
     n = write(newsockfd,"I got your message",18);
     if (n < 0) error("ERROR writing to socket");
     close(newsockfd);
     close(sockfd);
     return 0; 
} 

per ASINET
nSocket := SocketOpen( SOCK_STREAM, cServer, nPort, @nError )

will ich diesen Socket öffnen...
Es kommt immer Fehler 11004

Zum Test habe ich auf meinem Rechner auch Castalia Socket Tester installiert.
Wenn ich dort z.B. Port 1024 und die IP-Adresse 192.168.0.187 eingebe, dann sagt das Programm "Connected to IP = 192.168.0.187 on server port #1024"

Ich habe bisher wenig Erfahrungen mit socket-Programmierung.
Mache ich grundlegend etwas falsch - oder hat jemand eine Idee?
Den Port 1024 habe ich in der Firewall freigegeben (habe auch mit abgeschalteter Firewall getestet).

Grüße, Armin

Benutzeravatar
andreas
Foren-Moderator
Foren-Moderator
Beiträge: 1742
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Kontaktdaten:

Re: raspi per TCP socket

Beitrag von andreas » Fr, 27. Mai 2016 10:47

Hallo Armin,

das, was ich im Internet über den Fehler gefunden habe, deutet darauf hin, dass die Adresse ungültig ist bzw. nicht gefunden werden kann. https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
1. Der angeforderte Name ist gültig und wurde in der Datenbank des Name-Servers gefunden. Er verfügt jedoch nicht über eine richtig zugeordnete IP-Adresse.
2. Der angegebene Host ist unbekannt und kann nicht gefunden werden. Der von Ihnen angegebene Servername ist kein offizieller Name oder Alias. Bitte überprüfen Sie daher, ob Ihr DNS-Server korrekt konfiguriert ist.
Gruß,

Andreas
VIP der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18201
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: raspi per TCP socket

Beitrag von Manfred » Do, 01. Mär 2018 16:55

Ich glaube zu dem Thema haben wir was auf dem nächsten Forentreffen in Dresden.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2437
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: raspi per TCP socket

Beitrag von Wolfgang Ciriack » Do, 01. Mär 2018 17:50

Ich kommuniziere teilweise mit Fahrzeugwaagen über Sockets.
Dort muss ich den Blockingmode abschalten ( oSock:SetBlockingMode(.F.)).
Vielleicht hilft das ?
Viele Grüße
Wolfgang

Benutzeravatar
andreas
Foren-Moderator
Foren-Moderator
Beiträge: 1742
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Kontaktdaten:

Re: raspi per TCP socket

Beitrag von andreas » Fr, 02. Mär 2018 10:16

Unser Projekt mit Raspi für das Forentreffen ist auf Python basiert, wobei ich mich nicht daran erinnern kann, dass ich dort Blocking-Mode abgeschaltet habe und es funktioniert.
Bei einer Raspbian-Installation (Standard)musste ich auch keine Ports in der Firewall freischalten.
Außerdem ist auch eigener Webserver auf Python-Basis (leider ohne SSL) inkl. Ajax-Versuche realisiert.
Gruß,

Andreas
VIP der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18201
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: raspi per TCP socket

Beitrag von Manfred » Di, 27. Mär 2018 9:42

Da fällt mir gerade etwas ein. Am WE hatten Andreas und ich auch versucht über Socket einen Pi anzusprechen. Es kam auch die 11004 Meldung (wenn ich mich noch recht erinnere). Der Versuch wurde über eine VPN Verbindung zwischen 2 Fritzboxen gestartet. Als ich den gleichen Versuch später in meinem Heimnetzwerk nochmal nachstellte, klappte die Socket Verbindung.
Wir basteln aber noch an der Lösung. Wird sicherlich wieder was ganz doofes sein.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
DennisK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 33
Registriert: Sa, 17. Mär 2018 9:26
Wohnort: Neuenkirchen

Re: raspi per TCP socket

Beitrag von DennisK » Di, 27. Mär 2018 10:45

Es kam auch die 11004 Meldung
Sagt der Fehler nicht aus, dass es Probleme bei der Namensauflösung gibt? Sprecht Ihr den PI direkt über die IP an?
Ist es zu Ende denkbar? Widerspricht es nicht den Naturgesetzen? Dann ist es machbar!

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18201
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: raspi per TCP socket

Beitrag von Manfred » Di, 27. Mär 2018 11:27

:dontknow: . Ja.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 14598
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: raspi per TCP socket

Beitrag von Martin Altmann » Di, 27. Mär 2018 11:37

Wie schon am Telefon besprochen wird wohl die Portnummer zu hoch sein für Xbase++ unter Windows 10. Zumindest bei dem Patchstand von Xbase++

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18201
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: raspi per TCP socket

Beitrag von Manfred » Di, 27. Mär 2018 11:44

Lief weder unter 10 noch unter 7. Zu Deinem Vorschlag sind wir noch nicht gekommen.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Antworten