Giriş
Big endian yani network formatındaki ip değerini string'e çevirir.
Metod aşağıdaki gibi çalışır.
UDP sunucu soketinde bize veri gönderenin adresini almak için şöyle yaparız.
Şöyle yaparız.
Parametre açıklaması şöyle
Hata kodu errno değişkeninde değil h_errno değişkeninde saklanır. Açıklaması şöyle.
Big endian yani network formatındaki ip değerini string'e çevirir.
Metod aşağıdaki gibi çalışır.
UDP sunucu soketinde bize veri gönderenin adresini almak için şöyle yaparız.
struct sockaddr_in clientaddr; /* client addr */
int clientlen = sizeof(clientaddr);
int n = recvfrom(sockfd, ...,...,...,
(struct sockaddr *) &clientaddr, &clientlen);
clientaddr nesnesindeki ip adresini string'e çevirmek için kullanırız.Şöyle yaparız.
struct hostent *hostp;
hostp = gethostbyaddr((const char *)&clientaddr,
sizeof(clientaddr), AF_INET);
if (hostp != NULL) {
...
}
ParametreParametre açıklaması şöyle
[...] The host address argument is a pointer to a struct of a type depending on the address type, for example a struct in_addr * (probably obtained via a call to inet_addr(3)) for address typeAF_INET.Hata Kodu
Hata kodu errno değişkeninde değil h_errno değişkeninde saklanır. Açıklaması şöyle.
[...[ The gethostbyname() and gethostbyaddr() functions return the hostent structure or a null pointer if an error occurs. On error, the h_errno variable holds an error number.Hata kodları şöyle
The variable h_errno can have the following values:
HOST_NOT_FOUNDThe specified host is unknown. NO_ADDRESS or NO_DATAThe requested name is valid but does not have an IP address. NO_RECOVERYA nonrecoverable name server error occurred. TRY_AGAINA temporary error occurred on an authoritative name server. Try again later.
Hiç yorum yok:
Yorum Gönder