Hey mensen,

Ik heb nu een C Programma: http://pascal.signet.nl/chat.c, alleen de for loop ( de main loop, die for(;;) ) lijkt niet te werken!

Als ik de server start, en ik ga er naar toe met telnet, ik stop daarna de telnet client, krijg ik dit als output:


pascal# ./chat

Chat server> socket                     [  OK  ]
Chat server> fcntl                      [  OK  ]
Chat server> re-use                     [  OK  ]
Chat server> bind                       [  OK  ]
Chat server> listen                     [  OK  ]
Chat server> sigaction                  [  OK  ]
Chat server> starting main loop         [  OK  ]
start reset_input
-->-1<--
einde reset_input
Chat server> Connection from    [ 80.255.240.1 ]         on socket      [ 4 ]
0 ------FILEDISCRIPTOR-----> 4
recv: Resource temporarily unavailable
1 ------FILEDISCRIPTOR-----> 0
2 ------FILEDISCRIPTOR-----> 0
3 ------FILEDISCRIPTOR-----> 0
4 ------FILEDISCRIPTOR-----> 0
5 ------FILEDISCRIPTOR-----> 0
6 ------FILEDISCRIPTOR-----> 0
7 ------FILEDISCRIPTOR-----> 0
8 ------FILEDISCRIPTOR-----> 0
9 ------FILEDISCRIPTOR-----> 0


Wat het moet doen is tot nu toe gewoon maximaal 10 mensen in de chat toelaten, het wordt uiteindelijk een chat server. Het moet nu mensen naar de chat toe kunnen laten connecten, en ook weten wanneer ze ophangen. Als ze hebben opgehangen moet dus de user array bijgewerkt worden, maar dit wil allemaal niet.

Ik hoop dat ik duidelijk ben.
De printf's zijn allemaal nu trouwens nog als test, zodat ik precies weet wat er gebeurt.
Weet iemand wat ik fout doe?


MvG,
Niek van der Steen.
mijn werkende systeem is op select gebaseerd en je hebt als het goed is niet het risico dat ie stuk knalt blocking sockets (uit me hoofd) staat ook in die tut
Mh, ik zal het eens proberen met select dan. Weet iemand hoe ik dit het makkelijkste in kan bouwen zonder het hele script over hoop te halen?
Ik heb nu dit maar dat werkt ook niet.
Nu zie ik al helemaal niks meer op mijn scherm, ja dit:



cc -O2 -fno-strict-aliasing -pipe   chat.c  -o chat

pascal# ./chat.c

Chat server> socket                     [  OK  ]
Chat server> re-use                     [  OK  ]
Chat server> bind                       [  OK  ]
Chat server> listen                     [  OK  ]
Chat server> sigaction                  [  OK  ]
Chat server> starting main loop         [  OK  ]
^C
pascal#

niemand?

*bump*

Reageren