как передать argv в векторе uint8_t - PullRequest
0 голосов
/ 17 октября 2019

в моем коде я смог сгенерировать вектор uint8_t с шестнадцатеричными значениями внутри, так как я могу передать их через argv. Я прилагаю код, как передать компоненты вектора «команда» в качестве параметров основной функции? Я надеюсь, что объяснил сам.

Я хотел бы передать эти значения следующим образом:

. / Main 192.168.1.60 0x26 0x00 0x00 0x00 0x26

или также

. / Main 192.168.1.60 2600000026

Спасибо

#include <stdio.h>
#include <errno.h>
#include <string>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <cstring>
#include <unistd.h>
#include <iostream>
#include <unistd.h>
#include <sstream>
using namespace std;

// per compilare gcc test.cpp -lstdc++ -o main
int main(int argc, char *argv[])
{
    int sockfd, n;
    int connected = 0;
    struct sockaddr_in servaddr;
    char sendline[5];
    char recvline[5];
    std::string serveraddr = argv[1];

    sockfd = socket(AF_INET, SOCK_STREAM, 0);

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = inet_addr(serveraddr.c_str());
    servaddr.sin_port = htons(9761);

    connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));

    uint8_t command[] = {0x26, 0x00, 0x00, 0x00, 0x26}; 
    int bytes_to_send = sizeof(command);

    //cout << command;
    send(sockfd, command, bytes_to_send, 0);
    recv(sockfd, command, bytes_to_send, 0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...