29. marts 2003 - 19:46Der er
16 kommentarer og 1 løsning
Sockets: send() forkert type
Jeg ville lave den om så den sender min string, men jeg får denne fejl:
> g++ -Wall server.c -o ww server.c: In function `int main()': server.c:63: cannot convert `besked' from type `string' to type `const void *'
Hvad er const void *?
Hvad skal jeg gøre?
// strings std::string besked; besked = "morten";
send(fd2,besked,besked.size(),0); /* send to the client welcome message */ // send(fd2,"Welcome to my server.\n",22,0); /* send to the client welcome message */
their_addr.sin_family = AF_INET; // host byte order their_addr.sin_port = htons(PORT); // short, network byte order their_addr.sin_addr = *((struct in_addr *)he->h_addr); memset(&(their_addr.sin_zero), '\0', 8); // zero the rest of the struct
int main(void) { string test = "test"; const char *test2 = stoc( test ); cout <<"T: " <<test2 <<endl;
int sockfd, new_fd; // listen on sock_fd, new connection on new_fd struct sockaddr_in my_addr; // my address information struct sockaddr_in their_addr; // connector's address information
my_addr.sin_family = AF_INET; my_addr.sin_port = htons(MYPORT); // short, network byte order my_addr.sin_addr.s_addr = INADDR_ANY; // automatically fill with my IP memset(&(my_addr.sin_zero), '\0', 8); // zero the rest of the struct
close(new_fd); exit(0); } close(new_fd); // parent doesn't need this }
return 0; }
########
revc er blevet opsådan at den bliver ved med at modtage en char af gangen indtil den møder en nulterminering. Så slipper man får at slukke sende to gange, en med længden af dem som kommer og så selve dataen... Det her revc æder den bare....
Tak - så kan jeg da hente lidt inspiration. Dog tror jeg mest jeg vil prøve at arbejde videre med select() i stedet for fork() og threads.
Det skulle vel være lidt mere økonomisk med høj load, right?
Synes godt om
Ny brugerNybegynder
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.