Доброе утро,Неправильный прием данных с UDP сокет (C++)
мне нужно установить UDP соединение, чтобы отправить некоторые данные от клиента к серверу. Я внедрил начальную форму соединения example.
Тогда я определил мой client.cc класс:
#include <iostream>
#include <string.h>
#include <stdio.h>
#include "udp_client_server.h"
#include "prova.h"
using udp_client_server::udp_client;
#define LDM_IP "127.0.0.1"
#define LDM_PORT 5445 //8000
using namespace std;
int main() {
cout << "!!!I'm a client!!!" << endl;
prova *ciao = new prova() ;
ciao->a = 86;
ciao->b = 8.1;
ciao->c = 90;
udp_client_server::udp_client *client = new udp_client(LDM_IP, LDM_PORT);
int b = client->send((char *)ciao,strlen((char *)ciao));
if (b != strlen((char *)ciao)){
std::cout<<"Packet corrupted "<< std::endl;
}
return 0;
}
Тогда sender.cc класс:
#include <iostream>
#include <string.h>
#include "udp_client_server.h"
#include "prova.h"
using udp_client_server::udp_server;
#define LDM_IP "127.0.0.1"
#define LDM_PORT 5445 //8000
using namespace std;
int main() {
cout << "!!!I'm a server!!!" << endl;
int size_max = 256;
udp_client_server::udp_server *server = new udp_server(LDM_IP, LDM_PORT);
char *buffer;
int gotMsg = server->recv(buffer,size_max);
prova *pippo = new prova();
pippo = (prova *)(buffer);
std::cout<< "result " << gotMsg <<std::endl;
std::cout<< "value " << pippo <<std::endl;
return 0;
}
Соединение установить, но я не получаю то, что я посылаю. При каждом запуске я получаю другое неправильное значение вместо переданного.
Может ли кто-нибудь сказать мне, где ошибка? Заранее спасибо
Нет такой вещи, как UDP-соединение. – EJP
@EJP, что вы имеете в виду? – moi