Ich versuche, eine zufällige Portnummer für eine TCP-Verbindung zu generieren. Von: http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Ich weiß, dass der Bereich der Ports von 1024 bis 49151 nicht reserviert sind, aber einige von ihnen sind nur UDP, wie kann ich nur gültige TCP-Port-Nummern generieren?Zulässiger Portbereich für TCP
Antwort
Wenn Sie an Port 0 binden, wählt das Betriebssystem einen gültigen, nicht in Verwendung befindlichen Port aus.
Wenn Sie zufällig im Gegensatz zu arbiträre, sollte alles von 49152-65535 sicher für die automatische Verwendung so sein, also wählen Sie einfach eine zufällige Zahl innerhalb dieses Bereichs. (Sie müssen den Vorgang jedoch möglicherweise wiederholen, wenn dieser Anschluss verwendet wird.)
Also jeder Port in diesem Bereich würde TCP unterstützen? weil von der Wiki-Seite einige Ports nur für UDP markiert sind. Wie würde ich Java einchecken, wenn ein Port verwendet wird? Vielen Dank! –
Alle Ports von 1-65535 unterstützen TCP, das auf dieser Seite aufgelistete TCP/UDP bezieht sich auf registrierte Ports; das heißt, Ports, die für eine bestimmte Verwendung zugewiesen sind. Überprüfen Sie, ob ein Port in Verwendung ist, indem Sie versuchen, ihn zu binden. Wenn Sie einen Fehler über den verwendeten Port erhalten, ist dies der Fall. Wenn es egal ist, welchen Port du bekommst, aber nur, dass du einen bekommst, dann solltest du Port 0 binden und dann den lokalen Port von deinem neuen Socket holen, um herauszufinden, was du hast. – Eric
Um etwas näher zu erläutern, bindet sich Ihr lokaler Server an einen bestimmten Port, aber UDP und TCP befinden sich in verschiedenen "Namespaces" und sind daher unabhängig. Server, die _both_ verwenden, öffnen normalerweise dieselbe Portnummer für beide. _Connections_ sind durch ein 5-Tupel von Protokoll, local-addr, local-port, remote-addr, Remote-Port definiert, was erklärt, warum Sie kein Übersprechen und ähnliches bekommen. –
- 1. Iptables leitet Portbereich an einen anderen Portbereich auf einem anderen Host weiter
- 2. Wie kann ich den Portbereich für OpenMPI angeben?
- 3. Maximal zulässiger Wert für einen numpigen Datentyp
- 4. Wie geben Sie einen Portbereich für Java-Sockets an?
- 5. Zulässiger Int-Typ in Settings.settings erlaubt?
- 6. Modbus TCP für Silverlight
- 7. Docker Lauf kann nicht Portbereich trotz netstat veröffentlichen zeigt an, dass die Ports verfügbar sind
- 8. .NET-Projekt für TCP-Messaging
- 9. über SetDeadline() für TCP-Listener
- 10. TCP-Handshake für HTTP-Antwort?
- 11. Maximale Anzahl zulässiger Zeilenumbrüche in String-Wrapping festlegen
- 12. FEHLER: ec2_vpc_subnet ist kein zulässiger Parameter eines Ansible Play
- 13. '+ entityForName: nil ist kein zulässiger NSManagedObjectContext-Parameter - Core Data
- 14. HTTP vs TCP für Online-Spiele
- 15. Netzwerk-Framework für C++ (UDP oder TCP)?
- 16. Wie funktioniert der TCP-Server für immer?
- 17. Transparenter Delphi-Proxy für eine TCP-Verbindung
- 18. wireshark search tcp stream für string
- 19. C# TCP Server für einfachen Chat
- 20. Was sind die Übertragungswiederholungsregeln für TCP?
- 21. Gutes TCP/IP-Netzwerkbuch für einen Programmierer?
- 22. Einstellung Timeout für Socket recv TCP
- 23. TCP Fragmentierung
- 24. TCP-Sequenznummer
- 25. Halten Sie TCP-Verbindung dauerhaft mit ESP8266 TCP-Client
- 26. Wie programmatisch TCP/IP-Zähler per TCP-Verbindung extrahieren?
- 27. Simultane TCP Open
- 28. TCP und PF_RING
- 29. Linux TCP: Paketsegmentierung?
- 30. Teile des TCP-Paketverlustes
Alles oberhalb von 1024 wird für einen TCP-Client als in Ordnung angesehen. Sie denken zu viel darüber nach, wenn Sie einen Eintrag auf einer Wikipedia-Seite sehen müssen, um einen "akzeptablen" TCP-Port zu erhalten. Alle TCP-Ports = <1024 sind für Client-Socket-Quellports zulässig. –