• 用tcp/IP进行网际互联套接字API


    感觉这边书比unix网络编程第一卷好,所以看这本书了

    代码
    1 #include <iostream>
    2 #include <netdb.h>
    3 #include <sys/socket.h>
    4 #include <unistd.h>
    5
    6 using namespace std;
    7
    8 int main(void)
    9 {
    10 struct protoent *ptr;
    11
    12 if(ptr=getprotobyname("udp"))
    13 {
    14 char **pptr=ptr->p_aliases;
    15 cout<<ptr->p_name<<endl;
    16
    17 while(*pptr != NULL)
    18 {
    19 cout<<*pptr<<endl;
    20 pptr++;
    21 }
    22 cout<<ptr->p_proto<<endl;
    23 }
    24 else
    25 {
    26 cout<<"error"<<endl;
    27 }
    28 }

    代码
    1 #include <iostream>
    2 #include <unistd.h>
    3 #include <sys/types.h>
    4 #include <netdb.h>
    5 #include <sys/socket.h>
    6 #include <arpa/inet.h>
    7 #include <cstdlib>
    8
    9  using namespace std;
    10  int main(void)
    11 {
    12 struct hostent *hptr;
    13 char str[20];
    14 gethostname(str,sizeof(str));
    15 if(hptr=gethostbyname(str))
    16 {
    17 cout<<hptr->h_name<<endl;
    18 switch(hptr->h_addrtype)
    19 {
    20 case AF_INET:
    21 cout<<"AF_INET"<<endl;
    22 break;
    23 case AF_INET6:
    24 cout<<"AF_INET6"<<endl;
    25 break;
    26 default:
    27 cout<<"else"<<endl;
    28 break;
    29 }
    30 char **ptr=hptr->h_aliases;
    31
    32 while(*ptr != NULL)
    33 {
    34 cout<<*ptr<<endl;
    35 ptr++;
    36 }
    37
    38 ptr=hptr->h_addr_list;
    39 char str[32];
    40
    41 while(*ptr != NULL)
    42 {
    43 cout<<inet_ntop(hptr->h_addrtype,*ptr,str,sizeof(str));
    44 ptr++;
    45 }
    46 cout<<hptr->h_length<<endl;
    47 }
    48 else
    49 {
    50 cout<<"error"<<endl;
    51 }
    52 }
    53  

    代码
    1 #include <iostream>
    2 #include <netdb.h>
    3 #include <unistd.h>
    4 #include <sys/socket.h>
    5 #include <errno.h>
    6
    7 using namespace std;
    8
    9 int main(void)
    10 {
    11 struct servent *ser_info;
    12
    13 if(ser_info=getservbyname("echo","udp"))
    14 {
    15 char **ptr;
    16 cout<<ser_info->s_name<<endl;
    17 ptr=ser_info->s_aliases;
    18 while(*ptr != NULL)
    19 {
    20 cout<<*ptr<<endl;
    21 ptr++;
    22 }
    23 cout<<(ser_info->s_port)<<endl;
    24 cout<<ser_info->s_proto<<endl;
    25 }
    26 else
    27 {
    28 perror("getservbyname:");
    29 }
    30 }
    31

  • 相关阅读:
    自定义MyBatis
    SpringMVC基本
    Struts2访问Servlet
    Struts2的配置
    Rust开发环境搭建
    android webview和 javascript 进行交互
    C#开发step步骤条控件
    如何用cmd命令递归文件夹中的所有特定文件,拷贝到另一个文件夹中
    C#用DesignSurface实现一个简单的窗体设计器
    Roslyn如何实现简单的代码提示
  • 原文地址:https://www.cnblogs.com/linyilong3/p/1923032.html
Copyright © 2020-2023  润新知