Changeset 177

Show
Ignore:
Timestamp:
03/21/09 17:47:26 (15 years ago)
Author:
bhilburn
Message:

Cleaned up the new additions to the socketcomm library.

Location:
vtcross/trunk/src
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • vtcross/trunk/src/include/vtcross/socketcomm.h

    r176 r177  
    4949/* TODO 
    5050 */ 
    51 int32_t CreateTCPServerSocket(unsigned short port); 
     51int32_t CreateTCPServerSocket(uint16_t port); 
    5252 
    5353 
    5454/* TODO 
    5555 */ 
    56 void HandleTCPClient(int32_t socketfd, Utility * uList[], Parameter * pList[], \ 
    57         Observable * oList[], CE_Info * ce_info); 
     56void HandleTCPClient(int32_t socketfd, Utility* uList[], Parameter* pList[], \ 
     57        Observable* oList[], CE_Info* ce_info); 
    5858 
    5959#endif 
  • vtcross/trunk/src/lib/socketcomm/socketcomm.cpp

    r176 r177  
    191191 
    192192int32_t  
    193 AcceptTCPConnection(int32_t servSock) 
    194 { 
    195     int32_t clntSock;                    /* Socket descriptor for client */ 
    196     struct sockaddr_in echoClntAddr; 
    197     uint32_t clntLen; 
    198  
    199     /* Set the size of the in-out parameter */ 
    200     clntLen = sizeof(echoClntAddr); 
    201  
    202     /* Wait for a client to connect */ 
    203     //if ((clntSock = accept(servSock, (struct sockaddr *) &echoClntAddr, &clntLen)) < 0) { 
    204     if ((clntSock = accept(servSock, NULL, NULL)) < 0) { 
    205         return -1; 
    206     }  
    207     
    208     /* clntSock is connected to a client! */ 
    209      
    210     printf("Handling client %s\n", inet_ntoa(echoClntAddr.sin_addr)); 
    211  
    212     return clntSock; 
    213 } 
     193AcceptTCPConnection(int32_t serverSock) 
     194{ 
     195    struct sockaddr_in echoClientAddr; 
     196 
     197    uint32_t clientLength = sizeof(echoClientAddr); 
     198 
     199    int32_t clientSocket = accept(serverSock, NULL, NULL); 
     200    if(clientSocket < 0) 
     201        ERROR(1, "Could establish connection with client socket.\n"); 
     202    
     203    LOG("Handling client %s\n", inet_ntoa(echoClientAddr.sin_addr)); 
     204 
     205    return clientSocket; 
     206} 
     207 
    214208 
    215209int32_t  
    216210CreateTCPServerSocket(uint16_t port) 
    217211{ 
    218     int32_t sock;                        /* socket to create */ 
    219     struct sockaddr_in echoServAddr; /* Local address */ 
    220  
    221     /* Create socket for incoming connections */ 
    222     if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) 
     212    struct sockaddr_in echoServerAddr; 
     213 
     214    int32_t localSocket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); 
     215    if (localSocket < 0) 
    223216        ERROR(1, "socket() failed\n"); 
    224217       
    225     /* Construct local address structure */ 
    226     memset(&echoServAddr, 0, sizeof(echoServAddr));   /* Zero out structure */ 
    227     echoServAddr.sin_family = AF_INET;                /* int32_ternet address family */ 
    228     echoServAddr.sin_addr.s_addr = htonl(INADDR_ANY); /* Any incoming int32_terface */ 
    229     echoServAddr.sin_port = htons(port);              /* Local port */ 
     218    /* Construct the local address structure */ 
     219    memset(&echoServAddr, 0, sizeof(echoServerAddr)); 
     220    echoServAddr.sin_family = AF_INET; 
     221    echoServAddr.sin_addr.s_addr = htonl(INADDR_ANY); 
     222    echoServAddr.sin_port = htons(port); 
    230223 
    231224    /* Bind to the local address */ 
    232     if (bind(sock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr)) < 0) 
     225    if(bind(localSocket, (struct sockaddr *) &echoServerAddr, \ 
     226            sizeof(echoServerAddr)) < 0) 
    233227        ERROR(1, "bind() failed\n"); 
    234228 
    235229    /* Mark the socket so it will listen for incoming connections */ 
    236     if (listen(sock, 5) < 0) { 
    237         printf("listen() failed\n"); 
    238         return 0; 
    239     } 
    240  
    241     return sock; 
    242 } 
     230    if(listen(localSocket, 5) < 0) 
     231        ERROR(1, "listen() failed\n"); 
     232 
     233    return localSocket; 
     234} 
     235 
    243236 
    244237void  
    245 HandleTCPClient(int32_t socketfd, Utility * uList[], Parameter * pList[], \ 
    246         Observable * oList[], CE_Info * ce_info)  
    247 { 
    248     char buffer[256];        /* Buffer for echo string */ 
     238HandleTCPClient(int32_t socketFD, Utility* uList[], Parameter* pList[], \ 
     239        Observable* oList[], CE_Info* ce_info)  
     240{ 
     241    char buffer[256]; 
    249242 
    250243    /* Receive message from client */ 
    251     bzero(buffer,256); 
    252     ReadMessage(socketfd,buffer); 
    253  
    254     printf("Cognitive Radio:: Message Received - %s.\n\n", buffer); 
     244    bzero(buffer, 256); 
     245    ReadMessage(socketFD, buffer); 
     246 
     247    LOG("Cognitive Radio:: Message Received - %s.\n\n", buffer); 
    255248 
    256249    if(strcmp(buffer,"c_register") == 0)  
    257             InitializeCE(socketfd, uList, pList, oList, ce_info); 
     250            InitializeCE(socketFD, uList, pList, oList, ce_info); 
    258251 
    259252    if(strcmp(buffer,"p_register") == 0) 
    260             InitializePE(socketfd, ce_info); 
     253            InitializePE(socketFD, ce_info); 
    261254 
    262255    if(strcmp(buffer,"optimize") == 0) 
    263             RunSimulator(socketfd, uList, pList, oList, ce_info); 
     256            RunSimulator(socketFD, uList, pList, oList, ce_info); 
    264257         
     258    // TODO why aren't we doing this anymore? 
    265259    //close(socketfd);    /* Close client socket */ 
    266260}