K'ben net begonnen met een servertje, geschreven in C++ (met nog wat C functie's ertussen) en nog geen echt OO gebruik maar dat komt wel zodra ik het protocol en de rest ga implementeren.
Op zicht doet hij al wat hij moet doen, maar nu fork'ed hij voor elke connectie een child die blijft leven nadat de client gedisconnect is, nu dacht ik met vanuit de code zelf een pid te killen (kill(mypid, SIGCHLD);) dat de parent niet mee gekilled zou worden, dit is helaas niet waar, of toch niet op deze manier.
Dit krijg ik dus na 3 connectie's.
The source
Er staat wat uitgecommente code in wat ik al geprobeerd heb,
- In de child zelf z'n pid opvragen en zelf afschieten, gevolg partent stierf mee
- De child z'n pid laten returnen naar de parent en hem daar kill'n
Heb wel intressante dingen gevonden over wait() maar lijkt niet wat ik nodig heb.
Normaal lijkt exit() hier wel geschikt, dat was het eerste wat ik probeerde maar dan returned g++ een error:
Op zicht doet hij al wat hij moet doen, maar nu fork'ed hij voor elke connectie een child die blijft leven nadat de client gedisconnect is, nu dacht ik met vanuit de code zelf een pid te killen (kill(mypid, SIGCHLD);) dat de parent niet mee gekilled zou worden, dit is helaas niet waar, of toch niet op deze manier.
Dit krijg ik dus na 3 connectie's.
code:
1
2
3
4
| blacky 27095 0.0 0.5 1680 564 pts/1 S 14:46 0:00 | \_ ./server 4444 blacky 27096 0.0 0.0 0 0 pts/1 Z 14:46 0:00 | \_ [server <defunct>] blacky 27099 0.0 0.0 0 0 pts/1 Z 14:50 0:00 | \_ [server <defunct>] blacky 27100 0.0 0.0 0 0 pts/1 Z 14:51 0:00 | \_ [server <defunct>] |
The source
Er staat wat uitgecommente code in wat ik al geprobeerd heb,
- In de child zelf z'n pid opvragen en zelf afschieten, gevolg partent stierf mee
- De child z'n pid laten returnen naar de parent en hem daar kill'n
Heb wel intressante dingen gevonden over wait() maar lijkt niet wat ik nodig heb.
Normaal lijkt exit() hier wel geschikt, dat was het eerste wat ik probeerde maar dan returned g++ een error:
server-main.cpp: In function `int spawn_connection(int, sockaddr_in)':
server-main.cpp:195: `exit' cannot be used as a function
If it ain't broken it doesn't have enough features