UNIX Network Programming Volume 1, Third Edition [Electronic resources] : The Sockets Networking API نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

UNIX Network Programming Volume 1, Third Edition [Electronic resources] : The Sockets Networking API - نسخه متنی

Addison Wesley

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










11.11 host_serv Function


Our first interface to getaddrinfo does not require the caller to allocate a

hints structure and fill it in. Instead, the two fields of interest, the address family and the socket type, are arguments to our host_serv function.

#include "unp.h"

struct addrinfo *host_serv (const char *

hostname , const char *

service , int

family , ints

socktype );

Returns: pointer to addrinfo structure if OK, NULL on error

Figure 11.9 shows the source code for this function.

Figure 11.9 host_serv function.

lib/host_serv.c


1 #include "unp.h"
2 struct addrinfo *
3 host_serv(const char *host, const char *serv, int family, int socktype)
4 {
5 int n;
6 struct addrinfo hints, *res;
7 bzero (&hints, sizeof (struct addrinfo));
8 hints.ai_flags = AI_CANONNAME; /* always return canonical name */
9 hints.ai_family = family; /* AF_UNSPEC, AF_INET, AF_INET6, etc. */
10 hints.ai_socktype = socktype; /* 0, SOCK_STREAM, SOCK_DGRAM, etc. */
11 if ( (n = getaddrinfo(host, serv, &hints, &res)) != 0)
12 return (NULL);
13 return (res); /* return pointer to first on linked list */
14 }

713 The function initializes a

hints structure, calls getaddrinfo, and returns a null pointer if an error occurs.

We will call this function from Figure 16.17 when we want to use getaddrinfo to obtain the host and service information, but we want to establish the connection ourself.


/ 450