TCP/IP Sockets-1

TCP/IP Sockets-1

TCP-IPv4

创建和销毁套接字

创建套接字
    int socket(int domain,int type,int protocol)

参数

  • domin:通信领域,常用参数:IPv4—AF_INET和IPv6—AF_INET6
  • type:套接字类型,常用参数:可靠字节流语义—SOCK_STREAM,“尽力而为”—OCK_DGRAM
  • protocol:指定特定的端到端协议:TCP—IPPROTO_TCP,UDP—IPPROTO_UDP

返回值
返回通信实例句柄,非负值表示成功,-1表示失败

关闭套接字
    int close(int socket)

参数

通信实例句柄

返回值

失败返回-1,成功返回0

指定地址

通用地址
    struct sockaddr
    {
        sa_family_t sa_family; //地址族
        char sa_data[14]; //地址信息
    }
IPv4地址
struct in_addr
{
    uint32_t s_addr;    //Internet address(32 bit)
}
struct sockaddr_in
{
    sa_family_t sin_family;    //地址族
    in_port_t sin_port;     //端口
    struct in_addr sin_addr;    //32位地址
    char sin_zero[8];   //没用
}
IPv6地址
struct in6_addr
{
    unint32_t s_addr[16];
}

struct sockaddr_in6
{
    sa_family_t sin6_family;    //地址族
    in_port_t sin6_port;    //端口
    uint32_t sin6_flowinfol;    //流信息
    struct in6_addr sin6_addr;    //地址信息
    uint32_t sin6_scope_id;     //范围标识符   
}
二进制/字符串地址转换
    int inet_porn(int addressFamily,const char* src,void *dst)

参数

  • addressFamily:地址族
  • src:输入字符串(地址)地址
  • dst:输出结果地址

返回值

指定的地址族未知,返回-1,格式化未能成功返回0

    const char* inet_ntop(int addressFamily,const void* src,char * dst,socklen_t dstBytes)

参数

  • addressFamily:地址族
  • src:原地址(地址大小有地址族确定)
  • dst:目的地址
  • dstBytes:目的地址空间大小

返回值

如果返回值返回为NULL则转换失败,否则转换为目的地址

获取套接字的关联地址
int getpeername(int socket,struct sockaddr* remoteAddress,socklen_t* addressLength)

int getsockname(int socket,struct sockdaddr* localAddress,socklen_t* addressLength)

作用

getpeername():获取套接字关联的外部地址

getsockname():获取套接字关联的本地地址

参数

  • socket:套接字的句柄
  • localAddress/remoteAddress:地址存放的地址空间
  • addressLength:地址空间的长度

链接套接字

    int connet(int socket,const struct sockaddr* foreignAddress,socklen_t addressLength)

参数

  • socket:套接字的句柄
  • foreignAddress:目的地址地址结构
  • addressLength:结构长度

绑定到地址

    int blind(int socket,struct sockaddr* localAddress,socklen_t addresssize)

参数

  • socket:套接字的句柄
  • localAddress:本地地址地址结构
  • addressLength:结构长度

处理进入的链接

    int listen(int socket,int queueLimit)

参数

  • socket:套接字的句柄
  • queueLimiet:等待进入链接数量的上限

返回值
成功返回0,失败返回-1

    int accept(int socket,struct sockadd*)  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值