Changeset 73

Show
Ignore:
Timestamp:
11/22/08 22:53:53 (16 years ago)
Author:
ahe
Message:

minor modification of socket

Location:
vtcross/branches/trnewman/CR_shell/src
Files:
2 modified

Legend:

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

    r71 r73  
    6969} 
    7070 
     71int GetXMLFromServer(int sockfd, Utility uList[], Parameter pList[],  
     72        Observable oList[], CE_Info *ce_info) 
     73{ 
     74    char buffer[256]; 
     75    int i,j; 
     76 
     77    // read unitilities 
     78    // numUtilities 
     79    bzero(buffer,256); 
     80    ReadMessage(sockfd,buffer); 
     81    ce_info->numUtilities = atoi(buffer); 
     82    printf("number of utilities: %d\n", ce_info->numUtilities); 
     83         
     84    for (i = 0; i < ce_info->numUtilities; i++){ 
     85        bzero(buffer,256); 
     86            ReadMessage(sockfd,buffer); 
     87            printf("Name: %s\n", buffer); 
     88        strcpy(uList[i].name, buffer); 
     89                  
     90        bzero(buffer,256); 
     91            ReadMessage(sockfd,buffer); 
     92            printf("Units: %s\n", buffer); 
     93        strcpy(uList[i].units, buffer); 
     94 
     95        bzero(buffer,256); 
     96            ReadMessage(sockfd,buffer); 
     97        printf("Goal: %s\n", buffer); 
     98        strcpy(uList[i].goal, buffer); 
     99         
     100            bzero(buffer,256); 
     101            ReadMessage(sockfd,buffer); 
     102        printf("Target: %s\n", buffer); 
     103        uList[i].target = atof(buffer); 
     104    } 
     105 
     106    // read parameters 
     107    // numParameters 
     108    bzero(buffer,256); 
     109    ReadMessage(sockfd,buffer); 
     110    ce_info->numParameters = atoi(buffer); 
     111    printf("number of parameters: %d\n", ce_info->numParameters); 
     112         
     113    for (i = 0; i < ce_info->numParameters; i++){ 
     114        bzero(buffer,256); 
     115            ReadMessage(sockfd,buffer); 
     116            printf("Name: %s\n", buffer); 
     117        strcpy(pList[i].name, buffer); 
     118                  
     119        bzero(buffer,256); 
     120            ReadMessage(sockfd,buffer); 
     121            printf("Units: %s\n", buffer); 
     122        strcpy(pList[i].units, buffer); 
     123 
     124        bzero(buffer,256); 
     125            ReadMessage(sockfd,buffer); 
     126        printf("Min: %s\n", buffer); 
     127        pList[i].min = atof(buffer); 
     128         
     129        bzero(buffer,256); 
     130            ReadMessage(sockfd,buffer); 
     131        printf("Max: %s\n", buffer); 
     132        pList[i].max = atof(buffer); 
     133         
     134            bzero(buffer,256); 
     135            ReadMessage(sockfd,buffer); 
     136        printf("Step: %s\n", buffer); 
     137        pList[i].step = atof(buffer); 
     138     
     139        // numAffects 
     140        bzero(buffer,256); 
     141        ReadMessage(sockfd,buffer); 
     142        pList[i].numAffects = atoi(buffer); 
     143        printf("number of affects: %d\n", pList[i].numAffects); 
     144         
     145        for (j = 0; j < pList[i].numAffects; j++){ 
     146            bzero(buffer,256); 
     147                ReadMessage(sockfd,buffer); 
     148                printf("Utility name: %s\n", buffer); 
     149            strcpy(pList[i].affection_list[j].u.name, buffer); 
     150                  
     151            bzero(buffer,256); 
     152                ReadMessage(sockfd,buffer); 
     153                printf("Relation: %s\n", buffer); 
     154            strcpy(pList[i].affection_list[j].relation, buffer); 
     155        } 
     156 
     157    } 
     158     
     159    // read obervables 
     160    // numParameters 
     161    bzero(buffer,256); 
     162    ReadMessage(sockfd,buffer); 
     163    ce_info->numObservables = atoi(buffer); 
     164    printf("number of observables: %d\n", ce_info->numObservables); 
     165         
     166    for (i = 0; i < ce_info->numObservables; i++){ 
     167        bzero(buffer,256); 
     168            ReadMessage(sockfd,buffer); 
     169            printf("Name: %s\n", buffer); 
     170        strcpy(pList[i].name, buffer); 
     171                  
     172        // numAffects 
     173        bzero(buffer,256); 
     174        ReadMessage(sockfd,buffer); 
     175        oList[i].numAffects = atoi(buffer); 
     176        printf("number of affects: %d\n", oList[i].numAffects); 
     177         
     178        for (j = 0; j < oList[i].numAffects; j++){ 
     179            bzero(buffer,256); 
     180                ReadMessage(sockfd,buffer); 
     181                printf("Utility name: %s\n", buffer); 
     182            strcpy(oList[i].affection_list[j].u.name, buffer); 
     183                  
     184            bzero(buffer,256); 
     185                ReadMessage(sockfd,buffer); 
     186                printf("Relation: %s\n", buffer); 
     187            strcpy(oList[i].affection_list[j].relation, buffer); 
     188        } 
     189    } 
     190 
     191    printf("xml reception done\n"); 
     192     
     193    return 0; 
     194} 
     195 
     196void print_current_config(Utility * uList[], Parameter * pList[],  
     197        Observable * oList[], CE_Info * ce_info)  
     198{     
     199    int i = 0; 
     200    int j = 0; 
     201 
     202    // utilities 
     203    for(i = 0; i < ce_info->numUtilities ; i++) { 
     204        cout << "Utility:  " << uList[i]->name << endl; 
     205        cout << "     Units:  " << uList[i]->units << endl; 
     206        cout << "     Goal:   " << uList[i]->goal << endl; 
     207        cout << "     Target: " << uList[i]->target << endl; 
     208    } 
     209                        
     210    // parameters                         
     211    for(i = 0; i < ce_info->numParameters; i++) { 
     212        cout << "Parameter:  " << pList[i]->name << endl; 
     213        cout << "       Units:   " << pList[i]->units << endl; 
     214        cout << "       Min:     " << pList[i]->min << endl; 
     215        cout << "       Max:     " << pList[i]->max << endl; 
     216        cout << "       Step:    " << pList[i]->step << endl; 
     217        for(j = 0; j < pList[i]->numAffects; j++) { 
     218            cout << "       Affect: " << pList[i]->affection_list[j].u.name << " -> " << pList[i]->affection_list[j].relation << endl; 
     219        } 
     220    } 
     221 
     222    // observables 
     223    for(i = 0; i < ce_info->numObservables; i++) { 
     224        cout << "Observable:  " << oList[i]->name << endl; 
     225        for(j = 0; j < oList[i]->numAffects; j++) { 
     226            cout << "       Affect: " << oList[i]->affection_list[j].u.name << " -> " << oList[i]->affection_list[j].relation << endl; 
     227        } 
     228    } 
     229} 
     230 
     231 
    71232// main client socket 
    72233int main(int argc, char *argv[]) 
    73234{ 
    74     int sockfd, portno, n; 
     235    Utility uList[10]; 
     236    Parameter pList[10]; 
     237    Observable oList[10]; 
     238    CE_Info ce_info; 
     239 
     240    int sockfd, portno; 
    75241    struct sockaddr_in serv_addr; 
    76242    struct hostent *server; 
    77243 
    78     // create a socket 
    79     char buffer[256]; 
    80     char buffer1[256]; 
     244    // setup client socket connection 
    81245    if (argc < 3) { 
    82        fprintf(stderr,"usage %s hostname port\n", argv[0]); 
     246       fprintf(stderr,"usage: %s hostname port\n", argv[0]); 
    83247       exit(0); 
    84248    } 
    85     portno = atoi(argv[2]); 
    86     sockfd = socket(AF_INET, SOCK_STREAM, 0); 
    87     if (sockfd < 0)  
    88         error("ERROR opening socket"); 
     249    // server name 
    89250    server = gethostbyname(argv[1]); 
    90251    if (server == NULL) { 
     
    92253        exit(0); 
    93254    } 
     255    // port no. 
     256    portno = atoi(argv[2]); 
     257    // socket file descriptor 
     258    sockfd = socket(AF_INET, SOCK_STREAM, 0); 
     259    if (sockfd < 0)  
     260        error("ERROR opening socket"); 
     261    // initiate struct socketaddr_in 
    94262    bzero((char *) &serv_addr, sizeof(serv_addr)); 
    95263    serv_addr.sin_family = AF_INET; 
     264    serv_addr.sin_port = htons(portno); 
    96265    bcopy((char *)server->h_addr,  
    97266         (char *)&serv_addr.sin_addr.s_addr, 
    98267         server->h_length); 
    99     serv_addr.sin_port = htons(portno); 
    100268    // cast sockaddr_in to sockaddr 
    101269    if (connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) < 0)  
    102270        error("ERROR connecting"); 
    103271     
    104     int i, j; 
    105     Utility uList[10]; 
    106     Parameter pList[10]; 
    107     Observable oList[10]; 
    108     CE_Info ce_info; 
    109  
    110     // read unitilities 
    111     // numUtilities 
    112     bzero(buffer,256); 
    113     ReadMessage(sockfd,buffer); 
    114     ce_info.numUtilities = atoi(buffer); 
    115     printf("number of utilities: %d\n", ce_info.numUtilities); 
    116          
    117     for (i = 0; i < ce_info.numUtilities; i++){ 
    118         bzero(buffer,256); 
    119             ReadMessage(sockfd,buffer); 
    120             printf("Name: %s\n", buffer); 
    121         strcpy(uList[i].name, buffer); 
    122                   
    123         bzero(buffer,256); 
    124             ReadMessage(sockfd,buffer); 
    125             printf("Units: %s\n", buffer); 
    126         strcpy(uList[i].units, buffer); 
    127  
    128         bzero(buffer,256); 
    129             ReadMessage(sockfd,buffer); 
    130         printf("Goal: %s\n", buffer); 
    131         strcpy(uList[i].goal, buffer); 
    132          
    133             bzero(buffer,256); 
    134             ReadMessage(sockfd,buffer); 
    135         printf("Target: %s\n", buffer); 
    136         uList[i].target = atof(buffer); 
    137     } 
    138  
    139     // read parameters 
    140     // numParameters 
    141     bzero(buffer,256); 
    142     ReadMessage(sockfd,buffer); 
    143     ce_info.numParameters = atoi(buffer); 
    144     printf("number of parameters: %d\n", ce_info.numParameters); 
    145          
    146     for (i = 0; i < ce_info.numParameters; i++){ 
    147         bzero(buffer,256); 
    148             ReadMessage(sockfd,buffer); 
    149             printf("Name: %s\n", buffer); 
    150         strcpy(pList[i].name, buffer); 
    151                   
    152         bzero(buffer,256); 
    153             ReadMessage(sockfd,buffer); 
    154             printf("Units: %s\n", buffer); 
    155         strcpy(pList[i].units, buffer); 
    156  
    157         bzero(buffer,256); 
    158             ReadMessage(sockfd,buffer); 
    159         printf("Min: %s\n", buffer); 
    160         pList[i].min = atof(buffer); 
    161          
    162         bzero(buffer,256); 
    163             ReadMessage(sockfd,buffer); 
    164         printf("Max: %s\n", buffer); 
    165         pList[i].max = atof(buffer); 
    166          
    167             bzero(buffer,256); 
    168             ReadMessage(sockfd,buffer); 
    169         printf("Step: %s\n", buffer); 
    170         pList[i].step = atof(buffer); 
    171      
    172         // numAffects 
    173         bzero(buffer,256); 
    174         ReadMessage(sockfd,buffer); 
    175         pList[i].numAffects = atoi(buffer); 
    176         printf("number of affects: %d\n", pList[i].numAffects); 
    177          
    178         for (j = 0; j < pList[i].numAffects; j++){ 
    179             bzero(buffer,256); 
    180                 ReadMessage(sockfd,buffer); 
    181                 printf("Utility name: %s\n", buffer); 
    182             strcpy(pList[i].affection_list[j].u.name, buffer); 
    183                   
    184             bzero(buffer,256); 
    185                 ReadMessage(sockfd,buffer); 
    186                 printf("Relation: %s\n", buffer); 
    187             strcpy(pList[i].affection_list[j].relation, buffer); 
    188         } 
    189  
    190     } 
    191      
    192     // read obervables 
    193     // numParameters 
    194     bzero(buffer,256); 
    195     ReadMessage(sockfd,buffer); 
    196     ce_info.numObservables = atoi(buffer); 
    197     printf("number of observables: %d\n", ce_info.numObservables); 
    198          
    199     for (i = 0; i < ce_info.numObservables; i++){ 
    200         bzero(buffer,256); 
    201             ReadMessage(sockfd,buffer); 
    202             printf("Name: %s\n", buffer); 
    203         strcpy(pList[i].name, buffer); 
    204                   
    205         // numAffects 
    206         bzero(buffer,256); 
    207         ReadMessage(sockfd,buffer); 
    208         oList[i].numAffects = atoi(buffer); 
    209         printf("number of affects: %d\n", oList[i].numAffects); 
    210          
    211         for (j = 0; j < oList[i].numAffects; j++){ 
    212             bzero(buffer,256); 
    213                 ReadMessage(sockfd,buffer); 
    214                 printf("Utility name: %s\n", buffer); 
    215             strcpy(oList[i].affection_list[j].u.name, buffer); 
    216                   
    217             bzero(buffer,256); 
    218                 ReadMessage(sockfd,buffer); 
    219                 printf("Relation: %s\n", buffer); 
    220             strcpy(oList[i].affection_list[j].relation, buffer); 
    221         } 
    222     } 
    223  
    224      
    225     printf("xml transmission done\n"); 
     272    // get xml info from server 
     273    GetXMLFromServer(sockfd, uList, pList, oList, &ce_info); 
     274 
     275    printf("utility:\n name: %s, units: %s, goal: %s, target: %f\n",  
     276            uList[0].name, uList[0].units, uList[0].goal, uList[0].target); 
     277     
     278    //print_current_config(&uList, &pList, &oList, &ce_info);  
    226279 
    227280 
  • vtcross/branches/trnewman/CR_shell/src/main_cognitive_radio.cpp

    r72 r73  
    378378        struct sockaddr_in serv_addr, cli_addr; 
    379379 
    380         // Setup socket connection 
    381       
    382         sockfd = socket(AF_INET, SOCK_STREAM, 0); 
     380        // Setup server socket connection 
     381        sockfd = socket(AF_INET, SOCK_STREAM, 0); 
    383382        if (sockfd < 0)  
    384383                error("ERROR opening socket"); 
    385384        bzero((char *) &serv_addr, sizeof(serv_addr)); 
    386385        serv_addr.sin_family = AF_INET; 
     386        serv_addr.sin_port = htons(port); 
    387387        serv_addr.sin_addr.s_addr = INADDR_ANY; 
    388         serv_addr.sin_port = htons(port); 
    389388        if (bind(sockfd, (struct sockaddr *) &serv_addr, 
    390389                sizeof(serv_addr)) < 0)