5211 ret = threadRetVal; |
5211 ret = threadRetVal; |
5212 } |
5212 } |
5213 return ret; |
5213 return ret; |
5214 } |
5214 } |
5215 |
5215 |
|
5216 |
|
5217 void* createNwrite_socket(TAny* aParam) |
|
5218 { |
|
5219 sockaddr_in serv_addr; |
|
5220 int err1; |
|
5221 int ret = 0; |
|
5222 char *msg ="testing socket send"; |
|
5223 int sock_fd; |
|
5224 serv_addr.sin_family = AF_INET; |
|
5225 serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); |
|
5226 serv_addr.sin_port = (int)aParam; |
|
5227 sock_fd = socket(AF_INET,SOCK_STREAM,0); |
|
5228 if (sock_fd < 0) |
|
5229 { |
|
5230 ret = -1; |
|
5231 goto close; |
|
5232 } |
|
5233 if (connect(sock_fd,(sockaddr*)&serv_addr,sizeof(serv_addr)) < 0) |
|
5234 { |
|
5235 ret = -1; |
|
5236 goto close; |
|
5237 } |
|
5238 sleep(5); |
|
5239 err1 = write(sock_fd, msg, strlen(msg)+1); |
|
5240 if(err1 < 0) |
|
5241 { |
|
5242 ret = -1; |
|
5243 goto close; |
|
5244 } |
|
5245 sleep(5); |
|
5246 err1 = write(sock_fd, msg,strlen(msg)+1); |
|
5247 if(err1 == -1 ) |
|
5248 { |
|
5249 printf("write() failed returned errno = %d", errno); |
|
5250 } |
|
5251 else |
|
5252 { |
|
5253 ret = -1; |
|
5254 } |
|
5255 close: |
|
5256 close(sock_fd); |
|
5257 return (void*)ret; |
|
5258 |
|
5259 } |
|
5260 TInt CTestSocket::SockWriteOnClosedConn() |
|
5261 { |
|
5262 |
|
5263 int sock_fd,newsock_fd; |
|
5264 unsigned int addr_len; |
|
5265 sockaddr_in serv_addr,new_socket; |
|
5266 TInt ret = KErrNone; |
|
5267 int threadRetVal = 0; |
|
5268 void *threadRetValPtr = (void*)&threadRetVal; |
|
5269 sock_fd = socket(AF_INET,SOCK_STREAM,0); |
|
5270 if (sock_fd < 0) |
|
5271 { |
|
5272 return KErrSocket; |
|
5273 } |
|
5274 serv_addr.sin_family = AF_INET; |
|
5275 serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); |
|
5276 serv_addr.sin_port = htons(12350); |
|
5277 pthread_t clientThread; |
|
5278 if (bind(sock_fd,(sockaddr*)&serv_addr,sizeof(serv_addr)) < 0) |
|
5279 { |
|
5280 INFO_PRINTF2(_L("bind return with errno = %d"), errno); |
|
5281 return KErrBind; |
|
5282 } |
|
5283 if(-1 == listen(sock_fd, 1)) |
|
5284 { |
|
5285 printf("error listen failed"); |
|
5286 close(sock_fd); |
|
5287 return -1; |
|
5288 } |
|
5289 pthread_create(&clientThread, NULL, &createNwrite_socket, (void*)(serv_addr.sin_port)); |
|
5290 addr_len = sizeof(new_socket); |
|
5291 newsock_fd = accept(sock_fd,(sockaddr*)&new_socket,&addr_len); |
|
5292 if (errno != 0 ) |
|
5293 { |
|
5294 INFO_PRINTF2(_L("Accept return with errno = %d"), errno); |
|
5295 ret = -1; |
|
5296 } |
|
5297 |
|
5298 close(newsock_fd); |
|
5299 close(sock_fd); |
|
5300 pthread_join(clientThread, &threadRetValPtr ); |
|
5301 if (threadRetVal < 0) |
|
5302 { |
|
5303 INFO_PRINTF1(_L("SockWriteOnClosedConn failed")); |
|
5304 ret = threadRetVal; |
|
5305 } |
|
5306 return ret; |
|
5307 } |
|
5308 |
|
5309 |
5216 // ========================== OTHER EXPORTED FUNCTIONS ========================= |
5310 // ========================== OTHER EXPORTED FUNCTIONS ========================= |
5217 // None |
5311 // None |
5218 |
5312 |
5219 // End of File |
5313 // End of File |
5220 |
5314 |