в моем коде я смог сгенерировать вектор 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);
}