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

  • 相关阅读:
    Linux下shell
    分享微博@功能jquery代码及全面解析
    使用C#处理WebBrowser控件中的跨域问题
    Sqler 工具
    ASP.NET Web API批处理器
    Microsoft Academic Search
    C#中delegate对象Equals方法简析
    写一个编译器
    使用.NET中的Action及Func泛型委托
    电子政务数据库管理系统及应用软件系统安全分享(一)
  • 原文地址:https://www.cnblogs.com/wuchanming/p/3784254.html
Copyright © 2011-2022 走看看