Autor Wątek: recvfrom() odbiera własne sendto()  (Przeczytany 1277 razy)

Offline PsichiX (ΨΧΞ)

  • Użytkownik
    • PsichiX Website

# Maj 14, 2011, 19:00:42
Witam,
Mój problem polega na tym, iż wysyłając komunikat UDP na IP 127.0.0.1, na porcie 12346 (wcześniej zbindowany ten socket z portem 12345), otrzymuje zaraz po tym ten komunikat (IP 127.0.0.1, zaś port nr 0).
Moje pytanie brzmi: Jak powiązać socket UDP na przyjmowanie komunikatów z jednego konkretnego portu, zamiast otrzymywać ze wszystkich?

mój schemat, jak działa obecnie:
1. tworzę i binduję socket z IP 127.0.0.1 i portem 12345 (bind);
2. wysyłam komunikat na IP 127.0.0.1 na porcie 12346 (sendto);
3. czekam na odbiór wiadomości (recvfrom);
4. odczytuję wiadomość i sprawdzam z jakiego IP i portu ją otrzymałem i tutaj pokazuje mi moje IP oraz port 0;

zamiast powyższego punktu 4 powinien czekać na komunikat z portu 12345, a z tego co widać, otrzymuje własną wiadomość wysłaną na port 12346;

Za wszelkie pomocne odpowiedzi z góry bardzo dziękuję,
Pozdrawiam :)

EDIT: Czyżby niemożna było wysyłać i odbierać komunikatów na tym samym sockecie UDP? :0

btw. za co ten "Obserwowany"? D:
« Ostatnia zmiana: Maj 14, 2011, 19:09:04 wysłana przez ΨΧΞ »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline agent_J

  • Użytkownik

# Maj 14, 2011, 19:23:14
Normalnie można robić dwukierunkową komunikację na tym samym sockecie. Musisz po prostu sprawdzać adres w recvfrom() jak coś odbierzesz. Najlepiej pokaż kod.