програмын зорилго нь 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