Ich versuche Socket-Programmierung zu lernen. Also meine Frage ist, dass, wenn Sie ein Kind auf dem Client nach dem Herstellen einer Verbindung mit einem Socket, d. H. Nach dem Verbindungsaufruf. Dann können Sie unabhängig lesen und schreiben mit Socket-Deskriptor im Kind und Eltern? Der Server kennt nur einen Socket. Also wenn du beim Kind schnell liest als beim Elternteil. Wird es beim Eltern Datenverlust geben?Fork in Client in einem Client-Server-Programm
0
A
Antwort
0
Ja. Wenn zwei Prozesse versuchen, auf derselben Verbindung zu agieren, werden sie konkurrieren.
Forking dupliziert den Dateideskriptor der Verbindung (wie bei dup
/dup2
/dup3
), aber diese beiden filedescriptors werden nur zwei gezählt Verweise auf die gleiche Verbindung sein.
Praktisch bedeutet, dass die meisten fd-Einnahme syscalls (read()
, write()
, ...) wird bis zur gemeinsamen Zieldatei erhalten (die eigentliche Verbindung) jedoch close()
Anrufe werden nur die Verweiszähler dekrementieren und initiiert nur eine Verbindung Herunterfahren (wie mit dem shutdown()
Syscall), wenn der Refcount 0
wird.
Verwandte Themen
- 1. Fork-Implementierung in Perl
- 2. fork() Programm in C
- 3. fork in freeBSD unix
- 4. Fork Concept in C#
- 5. if (fork()) fork()
- 6. GitHub Repository Fork in Enterprise
- 7. Fork in Multi-Thread-Programm
- 8. pipe() und fork() in c
- 9. fork und exec in bash
- 10. Verweis auf Zeiger nach einem Aufruf von fork() in C
- 11. Fork ein Node_Modul in einem vorhandenen Git-Projekt
- 12. Wie in einem Client-Skript
- 13. Fork, Ruby, ActiveRecord und Dateideskriptoren auf Fork
- 14. git fork in ein unabhängiges Repository?
- 15. Verwenden von Julia-Paketen von einem Fork
- 16. Fork Tabbed Dock in QMainWindow Qt5.7
- 17. Fork Callback in Ruby mit Trap
- 18. fork() Prozessverhalten
- 19. Dead einfach Fork-Join Nebenläufigkeit in Clojure
- 20. Erstellt fork() Aliase?
- 21. Verwendung von fork() in Hersteller/Verbraucher
- 22. Wie diese fork() Beispiel in c
- 23. fork() und exec() laufen parallel in C
- 24. Fork() und for - wieder in die for?
- 25. Bibliothek mit Bezug auf fork() in C
- 26. Programm mit fork() und Signalverarbeitung in c
- 27. fork/pipe/close in einer rekursiven Funktion
- 28. ordnungsgemäße Verwendung der "disable fork" in SystemVerilog
- 29. Fork() Befehl in Linux C Codierung
- 30. Ermitteln der untergeordneten Prozessgenerierung in fork()
Ja. Wenn zwei Prozesse versuchen, auf derselben Verbindung zu agieren, werden sie konkurrieren. – PSkocik
@PSkocik erstellt ein Kind nicht den Socket selbst replizieren? –