Trecho:
SOCKET s;
struct addrinfo hints, *result;
int rc;
memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_CANONNAME;
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
rc = getaddrinfo("foobar", "5001", &hints, &result);
if(rc != 0) {
//Incapaz de resolver o nome
}
s=socket(result->ai_family,result->ai_socktype,result->ai_protocol);
if(s == INVALID_SOCKET) {
//API do soquete falhou
}
rc=connect(s, result->ai_addr, result->ai_addrlen);
if(rc == SOCKET_ERROR) {
//connect API failed
}
freeaddrinfo(result);
SOCKET s;
struct addrinfo hints, *result;
int rc;
memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_CANONNAME;
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
rc = getaddrinfo("foobar", "5001", &hints, &result);
if(rc != 0) {
//Incapaz de resolver o nome
}
s=socket(result->ai_family,result->ai_socktype,result->ai_protocol);
if(s == INVALID_SOCKET) {
//API do soquete falhou
}
rc=connect(s, result->ai_addr, result->ai_addrlen);
if(rc == SOCKET_ERROR) {
//connect API failed
}
freeaddrinfo(result);
Comentários
Postar um comentário