Changeset 176

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

Moved three functions from the shell's implementation to the socket library.
Have not yet cleaned them up.

Location:
vtcross/trunk/src
Files:
2 modified

Legend:

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

    r174 r176  
    4141        struct CE_Info *ce_info); 
    4242 
     43 
     44/* TODO 
     45 */ 
     46int32_t  AcceptTCPConnection(int32_t servSock); 
     47 
     48 
     49/* TODO 
     50 */ 
     51int32_t CreateTCPServerSocket(unsigned short port); 
     52 
     53 
     54/* TODO 
     55 */ 
     56void HandleTCPClient(int32_t socketfd, Utility * uList[], Parameter * pList[], \ 
     57        Observable * oList[], CE_Info * ce_info); 
     58 
    4359#endif 
  • vtcross/trunk/src/lib/socketcomm/socketcomm.cpp

    r174 r176  
    7676 
    7777     
    78 /* 
     78/* TODO I'm fairly certain this function is unnecessary, see function below for more details... 
    7979int32_t 
    8080SendMessage(int32_t socketFD, char* message)  
     
    189189} 
    190190 
     191 
     192int32_t  
     193AcceptTCPConnection(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} 
     214 
     215int32_t  
     216CreateTCPServerSocket(uint16_t port) 
     217{ 
     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) 
     223        ERROR(1, "socket() failed\n"); 
     224       
     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 */ 
     230 
     231    /* Bind to the local address */ 
     232    if (bind(sock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr)) < 0) 
     233        ERROR(1, "bind() failed\n"); 
     234 
     235    /* 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} 
     243 
     244void  
     245HandleTCPClient(int32_t socketfd, Utility * uList[], Parameter * pList[], \ 
     246        Observable * oList[], CE_Info * ce_info)  
     247{ 
     248    char buffer[256];        /* Buffer for echo string */ 
     249 
     250    /* Receive message from client */ 
     251    bzero(buffer,256); 
     252    ReadMessage(socketfd,buffer); 
     253 
     254    printf("Cognitive Radio:: Message Received - %s.\n\n", buffer); 
     255 
     256    if(strcmp(buffer,"c_register") == 0)  
     257            InitializeCE(socketfd, uList, pList, oList, ce_info); 
     258 
     259    if(strcmp(buffer,"p_register") == 0) 
     260            InitializePE(socketfd, ce_info); 
     261 
     262    if(strcmp(buffer,"optimize") == 0) 
     263            RunSimulator(socketfd, uList, pList, oList, ce_info); 
     264         
     265    //close(socketfd);    /* Close client socket */ 
     266}