100+
Baixades
Classificació del contingut
Per a tots els públics
Imatge d'una captura de pantalla
Imatge d'una captura de pantalla
Imatge d'una captura de pantalla
Imatge d'una captura de pantalla
Imatge d'una captura de pantalla

Sobre l'aplicació

L'objectiu de l'aplicació és el control remot de maquinari com Arduino, Netduino, Gerd Pi ...
El protocol és TCP / IP (client).

UP: 0, poder, 0
BAIX: 0, -poder, 0
ESQUERRA: -de potència, potència, 0
DRETA: el poder, el poder, 0
MITJÀ: 0, 0, 0 o 0, 0, potència (Zero actiu)

Mode Byte: 3 posicions es transfereixen com 3 bytes (per defecte)
manera ASCII: 3 posicions es transfereixen com a text separat per comes (per finalitzat el \ n)
inactiva Sessió: Cada transmissió en una connexió gasificat
Sessió activa: La connexió no es tanca, però si la reconnexió automàtica Cal fer (per defecte)
Zero inactiva: Sense retorn als valors zero després de l'alliberament
D'origen actiu: Acte retorn als valors zero després de l'alliberament

Codi d'exemple per a un servidor en el Raspberry Pi:

#include "stdio.h"
#include "stdlib.h"
# Include "string.h"
# Include "unistd.h"
# Include "sys / types.h"
# Include "sys / socket.h"
# Include "netinet / in.h"

d'error nul·la (const char * msg)
{
    perror (msg);
    exit (1);
}

int main (int argc, char * argv [])
{
    int sockfd, newsockfd, portno, n;
    socklen_t clilen;
    char buffer [256];
    struct serv_addr sockaddr_in, cli_addr;
    
    sockfd = socket (AF_INET, SOCK_STREAM, 0);
    si (sockfd <0)
         d'error ( "Presa d'obertura ERROR");

    bzero ((char *) i serv_addr, sizeof (serv_addr));
    portno = 12345;

    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = INADDR_ANY;
    serv_addr.sin_port = htons (portno);
    si (bind (sockfd, (struct sockaddr *)
           I serv_addr, sizeof (serv_addr)) <0)
                d'error ( "Error en la unió");

    mentre que (1)
    {
         escoltar (sockfd, 5);
         clilen = sizeof (cli_addr);
         newsockfd = accept (sockfd, (struct sockaddr *)
               I Cli_addr, i clilen);
         si (newsockfd <0)
               d'error ( "Error d'acceptar");

         mentre que (1)
         {
               bzero (memòria intermèdia, 256);
               n = read (newsockfd, tampó, 3);
               si (n <3)
               {
                     d'error ( "Error en llegir del socket");
                     trencar;
               }

               flotador tmp1 = (float) buffer [0];
               si (tmp1> 127)
                     tmp1 - = 256;

               flotador TMP2 = (float) buffer [1];
               si (Tmp2> 127)
                      Tmp2 - = 256;

               surar TMP3 = (float) buffer [2];
               si (TMP3> 127)
                      TMP3 - = 256;

               printf ( "% d% d% d \ n", (int) tmp1, (int) Tmp2, (int) TMP3);
         }
         tancar (newsockfd);
     }
     tancar (sockfd);
     return 0;
}
Data d'actualització:
23 de març 2016

Seguretat de les dades

La seguretat comença en entendre com els desenvolupadors recullen i comparteixen les teves dades. Les pràctiques de privadesa i seguretat de les dades poden variar segons l'ús que es fa de l'aplicació, la regió i l'edat. El desenvolupador ha proporcionat aquesta informació i és possible que l'actualitzi al llarg del temps.
No es comparteixen dades amb tercers
Més informació sobre com els desenvolupadors declaren la compartició de dades
No es recullen dades
Més informació sobre com els desenvolupadors declaren la recollida de dades
Compromès a seguir la política d'aplicacions per a famílies de Play