Changeset 81 for vtcross

Show
Ignore:
Timestamp:
11/24/08 17:31:46 (16 years ago)
Author:
ahe
Message:

server receive results

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • vtcross/branches/trnewman/CR_shell/src/main_cognitive_radio.cpp

    r80 r81  
    217217} 
    218218 
    219 int ReceiveMessage(int socketfd, string message) { 
    220          
    221         char buffer[256]; 
    222         int n; 
    223  
    224         // Clear incoming data buffer 
    225         bzero(buffer,256); 
     219 
     220int ReceiveMessage(int socket,char * buffer)  
     221{ 
     222    int i,n; 
    226223     
    227         // Wait for incoming message 
    228         n = read(socketfd,buffer,256); 
    229          
    230         // Print message 
    231         if (n > 0)  
    232                 printf("Here is the received meessage: %s\n",buffer); 
    233         if(n == 0) 
    234                 printf("Client closed the socket.\n"); 
    235          
    236         return n; 
    237 } 
     224    n = recv(socket,buffer,256,MSG_PEEK); 
     225    for(i=0;i<256;i++){ 
     226        if(strcmp(&buffer[i],"\0") == 0) break; 
     227    } 
     228    n = recv(socket,buffer,i+1,0); 
     229    if (n < 0) 
     230        error("ERROR reading from socket"); 
     231    //    printf("ReadMessage:%s %d\n",buffer,n); 
     232 
     233    return n; 
     234} 
     235 
    238236 
    239237int SendMessage(int socketfd, string message) { 
     
    323321        printf("Configuration sent, waiting for ACK...\n"); 
    324322        // Receive ACK for utils 
     323    char buffer[256]; 
    325324        string message; 
    326         n = ReceiveMessage(socketfd, message); 
    327         cout << message << endl; 
     325        n = ReceiveMessage(socketfd, buffer); 
     326    printf("%s\n", buffer); 
     327        //cout << message << endl; 
    328328        printf("ACK received.\n"); 
    329329 
     
    358358        CE_Info *ce_info) 
    359359{ 
     360    string message; 
    360361    char buffer[256]; 
    361     string message; 
    362362    int i; 
    363363    float var; 
     
    365365    // utility 
    366366    // numUtilities 
    367     bzero(buffer,256); 
    368     message.erase(); 
    369     ReceiveMessage(sockfd,message); 
    370     ce_info->numUtilities = atoi(message.c_str()); 
    371     printf("number of utilities: %d\n", ce_info->numUtilities); 
    372367    for (i = 0; i < ce_info->numUtilities; i++){ 
    373368        bzero(buffer,256); 
    374         message.erase(); 
    375         ReceiveMessage(sockfd,message); 
    376         var = atof(message.c_str()); 
     369        ReceiveMessage(sockfd,buffer); 
     370        var = atof(buffer); 
    377371        uList[i]->value = var; 
    378         printf("utility %s, value: %f\n",  
    379                 uList[i]->name, uList[i]->value); 
     372        printf("utility %s, value %f\n" 
     373                , uList[i]->name.c_str(), uList[i]->value); 
    380374    } 
    381375     
    382376    // paramter 
    383377    // numparameters 
    384     /*bzero(buffer,256);*/ 
    385     message.erase(); 
    386     ReceiveMessage(sockfd,message); 
    387     ce_info->numParameters = atoi(message.c_str()); 
    388     printf("number of parameters: %d\n", ce_info->numParameters); 
    389378    for (i = 0; i < ce_info->numParameters; i++){ 
    390         /*bzero(buffer,256);*/ 
    391         message.erase(); 
    392         ReceiveMessage(sockfd,message); 
    393         var = atof(message.c_str()); 
     379        bzero(buffer,256); 
     380        ReceiveMessage(sockfd,buffer); 
     381        var = atof(buffer); 
    394382        pList[i]->value = var; 
    395         printf("parameter %s, value: %f\n",  
    396                 pList[i]->name, pList[i]->value); 
     383        printf("parameter %s, value %f\n" 
     384                , pList[i]->name.c_str(), pList[i]->value); 
    397385    } 
    398386 
    399387    // observable 
    400388    // numObservables 
    401     /*bzero(buffer,256); 
    402     ReceiveMessage(sockfd,buffer);*/ 
    403     message.erase(); 
    404     ReceiveMessage(sockfd,message); 
    405     ce_info->numObservables = atoi(message.c_str()); 
    406     printf("number of observables: %d\n", ce_info->numObservables); 
    407389    for (i = 0; i < ce_info->numObservables; i++){ 
    408         /*bzero(buffer,256); 
    409         ReceiveMessage(sockfd,buffer);*/ 
    410         message.erase(); 
    411         ReceiveMessage(sockfd,message); 
    412         var = atof(message.c_str()); 
     390        bzero(buffer,256); 
     391        ReceiveMessage(sockfd,buffer); 
     392        var = atof(buffer); 
    413393        oList[i]->value = var; 
    414         printf("observable %s, value: %f\n",  
    415                 oList[i]->name, oList[i]->value); 
     394        printf("observable %s, value %f\n" 
     395                , oList[i]->name.c_str(), oList[i]->value); 
    416396    } 
     397    return 1; 
    417398} 
    418399