Avatar billede don_r Nybegynder
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.
Avatar billede arne_v Ekspert
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);
  }
Avatar billede don_r Nybegynder
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 ???
Avatar billede arne_v Ekspert
14. september 2004 - 10:55 #3
Avatar billede arne_v Ekspert
14. september 2004 - 22:23 #4
OK ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB