|
学习提示:如果没有C语言、Windows项目开发基础可以通过下方链接学习:
0基础C语言学习与训练
0基础C++学习与训练
Windows项目开发
1、如何创建套接字?
创建套接字可以使用(Socket)API中提供的函数socket进行创建。
函数的原型如下:
int socket( int af,int type,int protocol );
函数的原型分析:
(1)socket 函数调用后,会返回一个整型值,从函数原型的(返回类型,int)
就可以知道。
而这个返回值,就代表着(套接字)的创建是否成功。
如果创建成功,它会返回一个代表(套接字)的整型编号。
如果创建不成功,它会返回整型值(-1)。
(2)参数1:af,该参数代表着(协议的地址家族),
由于(套接字)是与(网络协议)无关的编程接口,
同时,可使用的(网络协议)有很多种,
所以,在创建(套接字)时,需要通过第一个参数说明,
本次所创建的(套接字)是使用哪一种(网络协议)。
(3)参数2:type,该参数描述了(参数1所选的协议的套接字类型),
即(套接字)处理数据的方式。
(4)参数3:protocol,该参数描述了(参数1与参数2有多个类型时),
可以通过该参数来说明要使用的特定传输。
但是,也可以根据(参数1与参数2)自动确定,
所以,可把该参数设置为0。
参数1、2、3具体有多少种协议与处理数据方式,请查看下表:
协议 |
参数1af |
参数2type |
参数3protocol |
Internet
Protocol(IP) |
AF_INET |
TCP |
SOCK_STREAM |
IPPROTO_IP |
UDP |
SOCK_DGRAM |
IPPROTO_UDP |
Raw sockets |
SOCK_RAW |
IPPROTO_RAW
IPPROTO_ICMP |
|
|
|
|
IPX/SPX |
AF/NS |
|
SOCK_DGRAM |
NSPROTO_IPX |
AF_IPX |
MSAFD
nwlnkspx[SPX] |
SOCK_SEQPACKET |
NSPROTO_SPX |
MSAFD
nwlnkspx[SPX]
[Pseudo-stream] |
SOCK_STREAM |
NSPROTO_SPX |
MSAFD
nwlnkspx[SPXII]
|
SOCK_STREAM |
NSPROTO_IPXII |
|
|
|
|
IPX/SPX |
AF_IPX |
MSAFD
nwlnkspx[SPXII]
[Pseudo-stream] |
SOCK_STREAM |
NSPROTO_IPXII |
|
|
|
|
NetBIOS |
AF_NETBIOS |
Sequential Packets |
SOCK_SEQPACKET |
LANA number |
Datagram s |
SOCK_DGRAM |
LANA number |
|
|
|
|
AppleTalk |
AF_APPLETALK |
MSAFD |
SOCK_RDM |
ATPROTP_ADSP |
AppleTalk[ADSP] |
|
|
|
|
AppleTalk |
|
MSAFD |
SOCK_STREAM |
ATPROTP_ADSP |
AppleTalk[ADSP] |
[Pseudo-stream] |
| |
|
MSAFD |
SOCK_RDM |
ATPROTP_PAP |
AppleTalk[PAP] |
| |
|
MSAFD |
SOCK_DGRAM |
DDPPROTO_RTMP |
AppleTalk[RTMP] |
| |
|
MSAFD |
SOCK_DGRAM |
DDPPROTO_ZIP |
AppleTalk[ZIP] |
到这里,我们就学习完创建Socket套接字这个知识点,而如何在网络编程中去运用它,
就可以通过下方的链接,下载完整的代码进行学习与训练,在下载的内容中,我们会结合
完整的代码继续详细分析每个知识点如何运用,这样,才可以一步一步地掌握网络编程。
>>>下载网络编程开发代码
|