Utworzyłem wątek. Wszystko się kompiluje.
W wątku tym odbieram wiadomości z gniazda, a raczej próbuję odbierać bo nie działa funkcja ,,recvfrom'' ponieważ zwraca ,,n<0'' co oznacza że wystąpił w niej błąd. Funkcja wątku wygląda tak:
Kod: Zaznacz cały
void InterfejsGniazdaPulapek::nasluch_i_odbior_pulapek()
{
int gniazdoPulapek, n; //tu przygotowuje zmienne glownie dla funkcji recvfrom
struct sockaddr_in struktura, strukturaBind;
char buforPulapek[1600];
socklen_t wielkoscStrukturyPulapek;
gniazdoPulapek = socket(AF_INET, SOCK_DGRAM, 0); //tworze gniazdo UDP
memset(&struktura, 0, sizeof(struktura)); //zeruje wstepnie struktury
memset(&strukturaBind, 0, sizeof(strukturaBind));
strukturaBind.sin_family = AF_INET; //wypelniam strukture
strukturaBind.sin_addr.s_addr = htonl(INADDR_ANY);
strukturaBind.sin_port = htons(162);
bind(gniazdoPulapek, (sockaddr *)&strukturaBind, sizeof(strukturaBind)); //binduje gniazdo
for (; ;)
{
n = recvfrom(gniazdoPulapek, buforPulapek, sizeof(buforPulapek), 0, (sockaddr *)(&struktura), &wielkoscStrukturyPulapek); //tu wlasnie funkcja recvfrom zwraca n<0
if (n < 0) //ten przypadek zachodzi i wyswietla error n<0
std::cout << std::endl << "error n<0";
else // to sie nie wykonuje
{
costam
}
}
}
Co jest nie tak?