100+
Таталтууд
Контентын үнэлгээ
Бүх насныханд
Дэлгэцээс дарсан зураг
Дэлгэцээс дарсан зураг
Дэлгэцээс дарсан зураг
Дэлгэцээс дарсан зураг
Дэлгэцээс дарсан зураг

Энэ аппын тухай

програмын зорилго нь Arduino, Netduino, Raspberry Pi гэх мэт алсын тоног төхөөрөмжийг хянах явдал юм ...
протокол нь TCP / IP (Client) юм.

UP: 0, эрчим хүч, 0
DOWN: 0, эрчим хүч, 0
ЗҮҮН ТАЛД: цахилгаан, эрчим хүч, 0
БАРУУН ТАЛД: цахилгаан, эрчим хүч, 0
Ойрхи: 0, 0, 0, 0, 0, эрчим хүч (Тэг идэвхтэй)

Байтын Mode: 3 албан тушаал 3 байт шиг дамжуулагдаж байна (анхдагч хэмжээ нь)
ASCII горим: 3 албан тушаал таслалаар тусгаарлана текст маягаар дамжуулагдаж байна (хамт \ N дууссан)
Хуралдаан идэвхгүй нь: Serated холбогдуулан дамжуулах бүр
Хуралдаан идэвхжилт: Холболтын хаалттай хэзээ ч, хэрэв шаардлагатай автомат дахин холбох хэрэгтэй (анхдагчаар)
Тэг идэвхгүй: хувилбар гарсны дараа тэг утгыг ямар ч буцах
Тэг идэвхжилт: хувилбар гарсны дараа тэг утгыг Авто буцах

Raspberry Pi дээр серверт зориулж дээж код:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "unistd.h"
#include "систем / types.h"
#include "систем / socket.h"
#include "netinet / in.h"

хүчин төгөлдөр бус алдаа (Const Хорхой * MSG)
{
    perror (ООТБ);
    гарах (1);
}

INT гол (INT argc, Хорхой * argv [])
{
    INT sockfd, newsockfd, portno, N;
    socklen_t clilen;
    Хорхой буфер [256];
    бүтцийг sockaddr_in serv_addr, cli_addr;
    
    sockfd = сокет (AF_INET, SOCK_STREAM, 0);
    бол (sockfd <0)
         алдаа ( "ERROR нээлтийн сокет");

    bzero ((Хорхой *) & 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);
    бол (BIND (sockfd (бүтцийг sockaddr *)
           & Serv_addr, sizeof (serv_addr)) <0)
                алдаа ( "заавал дээр ERROR");

    бол (1)
    {
         (Sockfd, 5) сонсох;
         clilen = sizeof (cli_addr);
         newsockfd = хүлээн авах (sockfd (бүтцийг sockaddr *)
               & Cli_addr, & clilen);
         бол (newsockfd <0)
               алдаа ( "хүлээн дээр ERROR");

         бол (1)
         {
               bzero (буфер, 256);
               N = уншиж (newsockfd, буфер, 3);
               бол (N <3)
               {
                     алдаа ( "ERROR сокет унших");
                     эвдэж,
               }

               ° в ° гч tmp1 = (° в ° гч) буфер [0];
               бол (tmp1> 127)
                     tmp1 - = 256;

               ° в ° гч tmp2 = (° в ° гч) буфер [1];
               бол (tmp2> 127)
                      tmp2 - = 256;

               х ° в ° TMP3 = (° в ° гч) буфер [2];
               бол (TMP3> 127)
                      TMP3 - = 256;

               printf ( "% г% г% г \ N" (INT) tmp1 (INT) tmp2 (INT) TMP3);
         }
         ойр (newsockfd);
     }
     ойр (sockfd);
     0 буцаах;
}
Шинэчилсэн огноо
2016 оны 3-р сарын 23

Өгөгдлийн аюулгүй байдал

Аюулгүй байдал нь хөгжүүлэгчид таны өгөгдлийг хэрхэн цуглуулж, хуваалцдаг болохыг ойлгохоос эхэлнэ. Өгөгдлийн нууцлал болон аюулгүй байдлын практик нь таны хэрэглээ, бүс нутаг болон наснаас хамаарч харилцан адилгүй байж болно. Хөгжүүлэгч энэ мэдээллийг өгсөн бөгөөд үүнийг цаг хугацааны явцад шинэчилж болно.
Гуравдагч талтай ямар ч өгөгдөл хуваалцаагүй
Хөгжүүлэгчид хуваалцахыг хэрхэн зарладаг талаар нэмэлт мэдээлэл авах
Ямар ч өгөгдөл цуглуулаагүй
Хөгжүүлэгчид цуглуулгыг хэрхэн зарладаг талаар нэмэлт мэдээлэл авах
Play-н Гэр бүлийн бодлогыг дагаж мөрдөх үүрэг хүлээсэн