在Windows下利用C语言实现socket通信,刚开始学习,记录自己的学习过程,如果出现错误还望各位大佬指点一二。
一、原理
1.socket()函数
int socket(int domain, int type, int protocol);
domain:协议域,决定了socket的地址类型,在通信中必须采用对应的地址。
type:指定socket类型。常用的socket类型有,SOCK_STREAM、SOCK_DGRAM、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等。
protocol:指定协议。常用的协议有,IPPROTO_TCP、IPPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等。
名称 |
目的 |
AF_UNIX, AF_LOCAL |
本地通信 |
AF_INET |
IPv4网络通信 |
AF_INET6 |
IPv6网络通信 |
AF_PACKET |
链路层通信 |
在Linux系统中AF_*和PF_*是等价的。
更多的socket函数的domain、type、protocol解析详见https://blog.csdn.net/liuxingen/article/details/44995467
2.bind()函数
int bind(int sockfd, const struct sock