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函数

  • 相关阅读:
    关于相机权限
    JDBC插入中文出现乱码问题
    记一次Java代码的部署
    Java-final关键字
    Java枚举使用详解
    临时表
    Oracle 11g 建表 表名大小写问题
    ORA-04021等待锁定对象时超时
    Oracle 查询时间差几天
    NVL()
  • 原文地址:https://www.cnblogs.com/wuchanming/p/3784254.html
Copyright © 2011-2022 走看看