Met onderstaande code wil ik het volgende berijken:
Komt een bericht van de socket, en als dat bericht uit meerdere woorden bestaat, moet alleen de eerste terug worder gezonden.
Het zenden werkt perfect, alleen als ik maar 1 woord stuur, komt er niets terug
Komt een bericht van de socket, en als dat bericht uit meerdere woorden bestaat, moet alleen de eerste terug worder gezonden.
Het zenden werkt perfect, alleen als ik maar 1 woord stuur, komt er niets terug
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| /*--------------------------------------------------------------------*/
/*--- Child - process command ---*/
/*--------------------------------------------------------------------*/
void Child(void* arg){
char msg[100];
char command[20];
char empty[1];
int bytes_read;
int clientsd = *(int *)arg;
do{
//ontvang data...msg = data bytes_read = data size
bytes_read = recv(clientsd, msg, sizeof(msg), 0);
if ( bytes_read < 0 )
perror("Read socket");
//zoek spatie in msg
char * pch;
pch=strchr(msg,' ');
if (pch!=NULL){
strncpy (command,msg,pch-msg);
}
else {
strcpy(command,msg);
}
send(clientsd, command, pch-msg, 0);
}
while (strncmp(msg, "bye\r", 4) != 0 || bytes_read < 0 );
close(clientsd);
exit(0);
} |
[ Voor 3% gewijzigd door Verwijderd op 28-08-2003 16:13 ]