Я прохожу стажировку в компании по управлению автопарком, которая использует устройства слежения за автомобилями устройства для определения водителей (которые работают для крупных корпораций) через GPS .
Мой проект заключается в интеграции датчиков Bluetooth ( температуры и влажности , в основном) с этими устройствами.
I не было проблем с интеграцией всех устройств (поскольку у нас есть программное обеспечение , которое в основном делает все за нас, все, что нам нужно сделать, это правильно его настроить). Это программное обеспечение отправляет информацию об устройстве (координаты, полученные значения ввода / вывода и т. Д. c.) На сервер и порт, определенный нами.
Хотя мой проект состоит в основном на аппаратном обеспечении , я хотел бы разработать простой код для создания более надежного решения (это также помогает мне получить лучшую оценку, поскольку я продолжаю развивать свой проект).
Моя идея заключалась в том, чтобы создать код (который будет применяться на сервере компании), который будет прослушивать информацию и сохранять ее в / с помощью сокетов. Насколько я помню, мне нужно установить sh соединение с помощью сокетов, прослушать информацию, принять ее и затем сохранить.
Вот что у меня есть на данный момент:
// Server side C/C++ program to demonstrate Socket programming
#include <unistd.h>
#include <stdio.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <string.h>
#define PORT 6027
int main (int argc, char const *argv[]) {
int server_fd, new_socket, valread;
struct sockaddr_in address;
int opt = 1;
int addrlen = sizeof(address);
char buffer[1024] = {0};
// Creating socket file descriptor
if ((server_fd = socket(AF_INET, SOCK_DGRAM, 0)) == 0) {
perror("socket failed");
exit(EXIT_FAILURE);
}
// Force attach socket to PORT 6027
if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT, &opt, sizeof(opt))) {
perror("setsockopt");
exit(EXIT_FAILURE);
}
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons( PORT );
if (bind(server_fd, (struct sockaddr *)&address, sizeof(address))<0) {
perror("bind failed");
exit(EXIT_FAILURE);
}
if (listen(server_fd, 3) < 0) {
perror("listen");
exit(EXIT_FAILURE);
}
if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen))<0) {
perror("accept");
exit(EXIT_FAILURE);
}
valread = read(new_socket, buffer, 1024);
printf("%s\n",buffer);
Я посетил этот веб-сайт, чтобы выполнить некоторые инструкции по созданию кода на стороне сервера. Хотелось бы услышать, если что-то не хватает / не так и как это исправить!