zoukankan      html  css  js  c++  java
  • socket套接字

    socket 套接字,一种特殊的I/O接口,是一种常用的进程间通信机制

    socket接口常用类型有:
    流式socket (SOCK_STREAM)可靠的、面向连接的通信流,使用TCP协议
    数据报socket (SOCK_DGRAM)提供无连接的服务,使用UDP协议
    原始socket 允许对底层协议如 IP 或 ICMP 进行直接访问,它功能强大但使用较为不便,主要用于一些协议的开发

    地址结构

    struct sockaddr
    {
    unsigned short sa_family; /地址族/
    char sa_data[14]; /14 字节的协议地址,包含该 socket 的IP 地址和端口号。/
    };

    struct sockaddr_in
    {
    short int sa_family; /地址族/
    unsigned short int sin_port; /端口号/
    struct in_addr sin_addr; /IP 地址/
    unsigned char sin_zero[8]; /填充 0 以保持与 struct sockaddr 同样大小/
    };

    这两个数据类型是等效的,可以相互转化,通常 sockaddr_in 数据类型使用更为方便。

    sa_family表示地址族(Address Family),也就是 IP 地址类型,常用有AF_INET 和 AF_INET6。AF 是“Address Family”的简写,INET是“Inetnet”的简写。AF_INET 表示 IPv4 地址;AF_INET6 表示 IPv6 地址。

    在 Linux 中,一些函数 可以实现主机名和地址的转化,最为常见的有 gethostbyname()、gethostbyaddr()和 getaddrinfo()等,它们都可 以实现 IPv4 和 IPv6 的地址和主机名之间的转化。其中 gethostbyname()是将主机名转化为 IP 地址, gethostbyaddr()则是逆操作,是将 IP 地址转化为主机名,另外 getaddrinfo()还能实现自动识别 IPv4 地址和 IPv6 地址。

    包含在头文件:#include <netdb.h>

  • 相关阅读:
    一套C#语言的日志控制系统
    unity自义定摇杆
    2014 西安邀请赛小结
    Poj 1112 Team Them Up!
    Poj 1112 Rebuilding Roads(树形DP+背包)
    USACO Cow Pedigrees
    Poj 2284 That Nice Euler Circuit
    LA 3942 Remember the Word
    HDU 3065 病毒侵袭持续中
    HDU 2896 病毒侵袭
  • 原文地址:https://www.cnblogs.com/zyever/p/9216801.html
Copyright © 2011-2022 走看看