网络编程中Socket套接字的创建

  

学习提示:如果没有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

MSAFD

 

nwlnkipx[IPX]

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套接字这个知识点,而如何在网络编程中去运用它

就可以通过下方的链接,下载完整的代码进行学习与训练,在下载的内容中,我们会结合

完整的代码继续详细分析每个知识点如何运用,这样,才可以一步一步地掌握网络编程。

 

>>>下载网络编程开发代码