14. september 2004 - 09:36
Der er
3 kommentarer og
1 løsning
Socket server/client
Jeg skal lave noget så simpelt som en server og en client. Jeg har lidt styr på socket, men jeg har følgende problem.
Jeg har lavet en server der lytter på en port, når den modtager noget sender den noget tilbage med send. Det virker når jeg bruger telnet som client.
Jeg er ved at lave clienten, den skal sende noget til serveren. Det virker, men lige bagefter skal den jo modtage det som serveren sendte. Jeg har ikke sat den til at lytte eller accepte da det er en client?? Den er derimod connectet til serveren, burte det ikke være nok??
Når jeg recv på clienten får jeg en fejl.
14. september 2004 - 10:16
#1
Du recv'er bare på samme socket descriptor som du har send'et.
Eksempel snippet (HTTP POST):
/* send POST request */
sprintf(cmd,"POST %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\nContent-Length: %d\r\n\r\n%s\r\n",
path,hostname,strlen(args),args);
status=send(sd,cmd,strlen(cmd),0);
if(status<0) {
printf("Error sending POST request\n");
goto fin;
}
/* read response */
while ((len=recv(sd,resp,sizeof(resp),0))>0) {
printf("%s",resp);
}
14. september 2004 - 10:52
#2
Jeg tror jeg har fundet ud af det, jeg kan se at jeg har 2 eller muligvis flere muligheder for at sende/recv, nemlig
send
recv
write
read
Kan du hurtigt forklare forskellen ???