上QQ阅读APP看书,第一时间看更新
2.1.2 面向连接协议与非面向连接协议所使用的函数
1.面向连接的协议
在面向连接的协议中,两台计算机之间在进行数据收发前,必须先在两者之间建立一个通信信道,以确保两台计算机之间存在一条路径可以互相沟通。在数据传输完毕后,切断这条通信信道。该种方式相当于打电话,用户在手机上拨10086,当客服人员接听后,用户就可以开始通话,通话完毕后就可以挂电话了。
面向连接的协议使用的是TCP,服务器与客户端建立通信信道所需要的基本Winsock函数如下。
服务器端函数:
socket()->bind()->listen()->accept()->send()/recv()->closesocket()
客户端函数:
socket()->connet()->send()/recv()->closesocket()
2.非面向连接的协议
在非面向连接的协议中,发送端只要直接将要发送的数据传出即可,不需要理会接收端是否能够收到数据。而接收端在接收到数据时,也不会响应信息通知发送给发送端。该种方式就相当于写信,将写好的信放到信箱中,但是却不能保证收信人真的能够收到这封信件。
非面向连接的协议使用的是UDP,服务器与客户端通信所需要的基本Winsock函数如下:
服务器端函数:
socket()->bind()->sendto()/recvfrom()->closesocket()
客户端函数:
socket()->sendto()/recvfrom()->closesocket()
面向连接的Winsock函数与非面向连接的Winsock函数会在后面的部分详细介绍。