Я пытаюсь отправить данные в формате UDP (без каких-либо ошибок - просто открыть сокет и отправить данные).Используемый код выглядит следующим образом:
#include<iostream>
#include<arpa/inet.h>
#include<unistd.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
int sockfd;
sockfd = socket(AF_INET,SOCK_DGRAM,0);
struct sockaddr_in client;
unsigned char* buffer = new unsigned char[1206]();
for(auto i=0; i<1206; i++){
buffer[i] = static_cast<unsigned char>(i);
}
client.sin_family = AF_INET;
client.sin_port = htons(5005);
client.sin_addr.s_addr = inet_addr("127.0.0.1");
socklen_t m = sizeof(client);
while(true){
sendto(sockfd,buffer,1206 ,0,(struct sockaddr *)&client,m);
cout<<"\nMessage sent...!! \n";
}
}
Однако это не распознается как протокол UDP.При попытке захватить его с помощью wireshark я получаю следующий результат.(1206 байтов буферизованных данных, как и ожидалось, но 44 байта заголовка, который должен быть 42).В чем проблема с кодом?
