Changeset 177
- Timestamp:
- 03/21/09 17:47:26 (15 years ago)
- Location:
- vtcross/trunk/src
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
vtcross/trunk/src/include/vtcross/socketcomm.h
r176 r177 49 49 /* TODO 50 50 */ 51 int32_t CreateTCPServerSocket(u nsigned short port);51 int32_t CreateTCPServerSocket(uint16_t port); 52 52 53 53 54 54 /* TODO 55 55 */ 56 void HandleTCPClient(int32_t socketfd, Utility * uList[], Parameter* pList[], \57 Observable * oList[], CE_Info* ce_info);56 void HandleTCPClient(int32_t socketfd, Utility* uList[], Parameter* pList[], \ 57 Observable* oList[], CE_Info* ce_info); 58 58 59 59 #endif -
vtcross/trunk/src/lib/socketcomm/socketcomm.cpp
r176 r177 191 191 192 192 int32_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 } 193 AcceptTCPConnection(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 214 208 215 209 int32_t 216 210 CreateTCPServerSocket(uint16_t port) 217 211 { 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) 223 216 ERROR(1, "socket() failed\n"); 224 217 225 /* Construct local address structure */226 memset(&echoServAddr, 0, sizeof(echoServ Addr)); /* 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); 230 223 231 224 /* 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) 233 227 ERROR(1, "bind() failed\n"); 234 228 235 229 /* 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 243 236 244 237 void 245 HandleTCPClient(int32_t socket fd, Utility * uList[], Parameter* pList[], \246 Observable * oList[], CE_Info* ce_info)247 { 248 char buffer[256]; /* Buffer for echo string */238 HandleTCPClient(int32_t socketFD, Utility* uList[], Parameter* pList[], \ 239 Observable* oList[], CE_Info* ce_info) 240 { 241 char buffer[256]; 249 242 250 243 /* Receive message from client */ 251 bzero(buffer, 256);252 ReadMessage(socket fd,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); 255 248 256 249 if(strcmp(buffer,"c_register") == 0) 257 InitializeCE(socket fd, uList, pList, oList, ce_info);250 InitializeCE(socketFD, uList, pList, oList, ce_info); 258 251 259 252 if(strcmp(buffer,"p_register") == 0) 260 InitializePE(socket fd, ce_info);253 InitializePE(socketFD, ce_info); 261 254 262 255 if(strcmp(buffer,"optimize") == 0) 263 RunSimulator(socket fd, uList, pList, oList, ce_info);256 RunSimulator(socketFD, uList, pList, oList, ce_info); 264 257 258 // TODO why aren't we doing this anymore? 265 259 //close(socketfd); /* Close client socket */ 266 260 }