Po prostu jestem ciekawy tego pytania, czy ktoś może mi powiedzieć?Dlaczego wywołanie funkcji listen() nie jest potrzebne podczas korzystania z gniazda UDP?
Odpowiedz
To dlatego, że UDP nie jest zorientowany na połączenie jak TCP, więc nie ma sensu w listen/accept jak w przypadku SOCK_STREAM. Spróbuj przeczytać akapit "2.1. Dwa rodzaje gniazd internetowych" w Beej guide to network programming i ogólnie w całym przewodniku jest to interesujące.
Jeśli dobrze pamiętam, nie ma żadnej metody Listen() związanej z Udp, zamiast tego wywołaj metodę receive(), która jest taka sama jak Listen() podczas korzystania z TCP, oba będą blokować proces, dopóki nie otrzyma pakietów . mam nadzieję, że to odpowie na twoje pytanie.
TCP to protokół przesyłania strumieniowego między serwerem a klientami. Protokół jest niezawodny i wymaga osobnego stanu dla każdego strumienia klienta serwera <. Protokół połączenia, zainicjowany przez nasłuchiwanie/akceptowanie, ustawia ten serwer na stan połączenia klienta: <>. UDP to bezpołączeniowy, niewiarygodny datagram, (komunikat), więc nie trzeba nasłuchiwać nowych połączeń - datagramy mogą przychodzić w dowolnej kolejności z dowolnego źródła.
- 1. Limit czasu UDP dla gniazda UDP
- 2. Gniazda UDP Phonegap?
- 3. Dlaczego niektóre dane POST zaginęły podczas korzystania z funkcji Uploadify?
- 4. Uzyskiwanie "setVersion" nie jest błędem funkcji podczas korzystania z indexedDB
- 5. Dlaczego w sockaddr_in potrzebne jest zerowe wypełnienie?
- 6. vhost.exe. Dlaczego jest to potrzebne?
- 7. Dlaczego to wywołanie funkcji dispatch_sync() jest blokowane?
- 8. Dlaczego potrzebne jest wyraźne std :: move podczas zwracania kompatybilnego typu?
- 9. Nieprawidłowy prototyp podczas korzystania z funkcji Sprawdź
- 10. Przeniesienie gniazda UDP w node.js z aplikacji do HTTP
- 11. postgres LISTEN/NOTIFY rails
- 12. Czy Rails obsługuje czysty sposób słuchania gniazda UDP?
- 13. Podczas korzystania z funkcji destrukturyzacji obiektu, dlaczego właściwość "nazwa" jest rzutowana na ciąg znaków?
- 14. Dlaczego nie ma podwójnego renderowania podczas korzystania z before_action?
- 15. Jak podzielić otrzymane z boost asio udp gniazda united datagramy
- 16. Dlaczego pojawia się ostrzeżenie o kompilacji podczas korzystania z funkcji ContinueWith?
- 17. Dlaczego widzę duplikaty pakietów podczas korzystania z gniazd do odbierania transmisji UDP w systemie Windows7, ale nie XP?
- 18. Dlaczego nie można rzucić wyjątku podczas korzystania z potrójnego operatora
- 19. Dlaczego podczas korzystania z funkcji sum() nie pojawia się obiekt "int"?
- 20. Nie można połączyć się z lokalnym serwerem MySQL przez błąd gniazda podczas korzystania z tunera SSH
- 21. Funkcje potrzebne podczas budowania ORM z PHP?
- 22. Dlaczego moje wywołanie onPrepareOptionsMenu nie jest wywoływane?
- 23. Kątowa: wywołanie funkcji z widoku
- 24. Czy wywołanie funkcji WSAStartup() z kilku wątków może spowodować zakleszczenie?
- 25. Wywołanie funkcji DLL z Python
- 26. Uzyskiwanie przerwania wątku Wyjątek podczas korzystania z funkcji Response.Redirect()
- 27. Wywołanie przeciążonej funkcji jest niejednoznaczne.
- 28. Dlaczego potrzebne są nawiasy w tej funkcji F #?
- 29. Dlaczego Silverlight lub Flash nie implementują gniazd UDP?
- 30. Czy funkcja boost ma przenośny sposób korzystania z funkcji ntohl/htonl/ntohs/htons?