Exemple #1
0
t_socket *sockets_create(char* ip, int port){
	t_socket* sckt = malloc( sizeof(t_socket) );
	sckt->desc = socket(AF_INET, SOCK_STREAM, 0);
	if( !sockets_bind(sckt, ip, port) ){
		free(sckt);
		return NULL;
	}
	sockets_setMode(sckt, SOCKETMODE_BLOCK);
	return sckt;
}
Exemple #2
0
/**
 * @NAME: sockets_createServer
 * @DESC: Inicializa un servidor.
 * Retorna el fileDescriptor.
 */
int sockets_createServer(char *addr, char *port, int backlog) {
	int sockfd = sockets_getSocket();
	if (sockets_bind(sockfd, addr, port) == -1) {
		close(sockfd);
		return -1;
	}
	if (sockets_listen(sockfd, backlog) == -1) {
		close(sockfd);
		return -1;
	}
	return sockfd;
}
Exemple #3
0
t_socket *sockets_create(char* ip, int port){
	t_socket* sckt = malloc( sizeof(t_socket) );
	sckt->desc = socket(AF_INET, SOCK_STREAM, 0);
	if( !sockets_bind(sckt, ip, port) ){
		free(sckt);
		return NULL;
	}

	int flag=1;

	// Re-Use Address
	setsockopt(sckt->desc, SOL_SOCKET, SO_REUSEADDR, &flag, sizeof flag);
	// Avoid nagle problem
	setsockopt(sckt->desc, IPPROTO_TCP, TCP_NODELAY, &flag,	sizeof(flag));

	sockets_setMode(sckt, SOCKETMODE_BLOCK);
	return sckt;
}