project_files/frontlib/socket.c
changeset 7234 613998625a3c
parent 7224 5143861c83bd
child 7271 5608ac657362
equal deleted inserted replaced
7230:240620f46dd7 7234:613998625a3c
   119 		}
   119 		}
   120 	}
   120 	}
   121 	return result;
   121 	return result;
   122 }
   122 }
   123 
   123 
       
   124 flib_tcpsocket *flib_socket_connect(const char *host, uint16_t port) {
       
   125 	flib_tcpsocket *result = NULL;
       
   126 	if(!host || port==0) {
       
   127 		flib_log_e("Invalid parameter in flib_socket_connect");
       
   128 	} else {
       
   129 		IPaddress ip;
       
   130 		if(SDLNet_ResolveHost(&ip,host,port)==-1) {
       
   131 		   flib_log_e("SDLNet_ResolveHost: %s\n", SDLNet_GetError());
       
   132 		} else {
       
   133 			TCPsocket sock=SDLNet_TCP_Open(&ip);
       
   134 			if(!sock) {
       
   135 				flib_log_e("SDLNet_TCP_Open: %s\n", SDLNet_GetError());
       
   136 			} else {
       
   137 				result = flib_socket_create(sock);
       
   138 				if(result) {
       
   139 					sock = NULL;
       
   140 				}
       
   141 			}
       
   142 			SDLNet_TCP_Close(sock);
       
   143 		}
       
   144 	}
       
   145 	return result;
       
   146 }
       
   147 
   124 void flib_socket_close(flib_tcpsocket *sock) {
   148 void flib_socket_close(flib_tcpsocket *sock) {
   125 	if(sock) {
   149 	if(sock) {
   126 		SDLNet_DelSocket(sock->sockset, (SDLNet_GenericSocket)sock->sock);
   150 		SDLNet_DelSocket(sock->sockset, (SDLNet_GenericSocket)sock->sock);
   127 		SDLNet_TCP_Close(sock->sock);
   151 		SDLNet_TCP_Close(sock->sock);
   128 		SDLNet_FreeSocketSet(sock->sockset);
   152 		SDLNet_FreeSocketSet(sock->sockset);