Giriş
Şu satırı dahil ederiz.
İmzası şöyle
Şöyle yaparız.
Eğer işlem başarısız ise hata kodu h_errno değişkenine atanır.
Başarılı İse
Eğer işlem başarılı ise şöyle yaparız. Burada gethostbyname() metodunun döndürdüğü 4 byte IP adresi yeni bir sockarrd_in yapısını doldurmak için kullanılıyor.
Şu satırı dahil ederiz.
#include <netdb.h>İmzası şöyle
struct hostent *gethostbyname(const char *name);struct hostent {
  char  *h_name;            /* official name of host */
  char **h_aliases;         /* alias list */
  int    h_addrtype;        /* host address type */
  int    h_length;          /* length of address */
  char **h_addr_list;       /* list of addresses */
}Şöyle yaparız.
struct hostent *hent = gethostbyname("www.yahoo.com");if (hent== NULL) {
  std::cerr << "Error when using gethostbyname" << std::endl;
  ...
}Eğer işlem başarısız ise hata kodu h_errno değişkenine atanır.
Başarılı İse
Eğer işlem başarılı ise şöyle yaparız. Burada gethostbyname() metodunun döndürdüğü 4 byte IP adresi yeni bir sockarrd_in yapısını doldurmak için kullanılıyor.
struct sockaddr_in servaddr;
int port = ...;
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(port);
memcpy(&servaddr.sin_addr, h -> h_addr, h -> h_length);
Daha sonra bağlanma işlemi yapılabilir. Şöyle yaparız.
int rval;
rval = connect(socket, (struct sockaddr *) &servaddr, sizeof(servaddr));

 
 
Hiç yorum yok:
Yorum Gönder