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

  • 相关阅读:
    取汉字字串的首字母
    回调函数
    [转].NET对象与COM对象
    [转]TCP与UDP的特点与区别
    【转】一张图分出你是用左脑还是右脑!
    并发基础(Runnable、Thread、Executor)
    Java序列化总结
    Hadoop安装配置手册
    MySQL配置信息解读(my.cnf)
    mysql主从备份、主从切换
  • 原文地址:https://www.cnblogs.com/wuchanming/p/3784254.html
Copyright © 2011-2022 走看看