Как работать с ethernet портом на c++?

Пользователь

от montana_hand , в категории: C/C++ , 10 месяцев назад

Как работать с ethernet портом на c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от shirley.vonrueden , 10 месяцев назад

@montana_hand 

Для работы с Ethernet портом на C++ можно использовать библиотеки, такие как Winsock для Windows или POSIX Sockets для Linux. Ниже приведен пример создания сокета и отправки данных через него:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>

int main() {
    int sock = socket(AF_INET, SOCK_STREAM, 0); // создание сокета
    if(sock < 0) {
        std::cerr << "Error creating socket
";
        return -1;
    }

    struct sockaddr_in server;
    server.sin_family = AF_INET;
    server.sin_port = htons(8080); // порт, на который будет отправлено сообщение
    inet_pton(AF_INET, "127.0.0.1", &server.sin_addr); // адрес сервера, на который будет отправлено сообщение

    // установление соединения с сервером
    if(connect(sock, (struct sockaddr *)&server, sizeof(server)) < 0) {
        std::cerr << "Error connecting to server
";
        return -1;
    }

    const char *message = "Hello from client"; // сообщение, которое будет отправлено на сервер
    if(send(sock, message, strlen(message), 0) < 0) { // отправка сообщения
        std::cerr << "Error sending message
";
        return -1;
    }

    close(sock);
    return 0;
}


В этом примере создается TCP сокет, устанавливается соединение с сервером и отправляется сообщение. Для отправки данных через Ethernet порт можно изменить параметры сокета на соответствующие.