套接字(Windows)

套接字

操作系统管理的进程的套接字表,每一个进程拥有一张套接字表

套接字有两种一种是被动套接字(作为Server时),一种是活动套接字(作为Client时)。

 

TCP/IP 协议族 常量 PF_INET =2 

TCP/IP 地址族 常量 AF_INET =2 

 

套接字端点地址一般数据结构

struct sockaddr{ //一般结构定义

    u_short sa_family; //地址族

    char sa_data[14]; //地址

};

 

套接字端点地址的精确数据结构定义

struct sockaddr_in{

    u_short sin_family; //地址类型,值一直都是AF_INET

    u_short sin_port; //端口号

    struct in_addr sin_addr; //IP地址

    char sin_zero[8]; //没用的,常为0

};

只是使用了TCP/IP协议的程序只需要使用sockaddr_in结构,sockaddr结构只是用来强制类型转换通过编译器的编译。

 

套接字函数

WSAStartup

使用套接字前必须调用的函数

 

WSACleanup

结束使用套接字关闭释放套接字的函数

 

Socket

创建一个套接字

 

connect

客户端调用此函数来和服务端连接

 

send

发送数据

 

recv

接收函数

 

closesocket

关闭套接字并释放,如果多个进程共享套接字,引用-1,当引用为0的时候释放套接字

 

bind

指定套接字的本地端点地址和端口

 

listen

Server用来监听传入连接,套接字被设定为被动模式

 

accept

获得连接,如果一直没有获得连接则一直阻塞

 

套接字调用模式

客户端:

WSAStartup->socket->connect->send->recv->closesocket->WSACleanup

 

服务端:

WSAStartup->socket->bind->listen->accept->recv->send->closesocket->WSACleanup

 

getsockname 得到socket本地端口信息

转载于:https://www.cnblogs.com/cplover/p/3371967.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值