zoukankan      html  css  js  c++  java
  • 基本TCP套接字编程

    1 socket函数

    为了执行网络I/O,一个进程必须做的一件事情就是调用socket函数,指定期望的通信协议类型(使用Ipv4的TCP,使用Ipv6的UDP,Unix域字节流协议等)。

    # include<sys/socket.h>
    int socket(int family,int type,int protocol);
    返回:若成功则为非负描述符,若出错则为-1

    其中family参数指明协议簇,它是下图一所示的某个常值。该参数也常常被称为协议域。

    type参数指明套接字类型,它是图二所示的某个常值。

    protocol参数应设为图三所示的某个协议类型常值,或者设为0,以选择所给定的family和type组合的系统默认值。

    图一 socket的family值:

    family 说明

    AF_INET

    AF_INET6

    AF_LOCAL

    AF_ROUTE

    AF_KEY

    IPv4协议

    IPv6协议

    Unix域协议

    路由套接字

    密钥套接字

    图二 socket的type值

    type 说明

    SOCK_STREAM

    SOCK_DGRAM

    SOCK_SEGPACKET

    SOCK_RAW

    字节流套接字

    数据报套接字

    有序分组套接字

    原始套接字

    图三 socket函数的AF_INET或AF_INET6的protocol常值

    protocol     说明

    IPPROTO_TCP

    IPPROTO_UDP

    IPPROTO_SCTP

    TCP传输协议

    UDP传输协议

    SCTP传输协议

    图四 socket函数的family和type的组合

                                             AF_INET                   AF_INET6               AF_LOCAL     AF_ROUTE  AF_KEY

    SOCK_STREAM
    SOCK_DGRAM
    SOCK_SEQPACKET  
    SOCK_RAW
    TCP|SCTP TCP|SCTP   是    
    UDP UDP    
    SCTP SCTP      
    IPv4     IPv6  

    socket函数成功返回一个小的非负整数值,它与文件描述符类似,我们把它称为套接字描述符,简称sockfd。

    2 connect函数

  • 相关阅读:
    docker私有仓库搭建及使用
    服务器ip迁移纪要
    Windows 下QT程序发布
    Prometheus监控软件部署方法
    android的listview控件,加了行内按钮事件导致行点击失效的问题
    惊奇!Android studio内部在调用Eclipse
    关于Android Stuido2.3和Eclipse4.4
    XCODE9.1的一些新问题
    osx12.6设置全屏
    IEEE754浮点数与字节数互转工具
  • 原文地址:https://www.cnblogs.com/wuchanming/p/3784254.html
Copyright © 2011-2022 走看看