2024年4月28日发(作者:)

Socket 通信

一、知识点回顾

1、Socket的概念:

Socket的英文原意是“插座”。抽象出来,socket实质上提供了进程通信的端点,进

程通信前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的。一

个完整的socket接口用一个相关描述就是:{协议,本地地址,本地端口,远地地址,远

地端口}(这也就是网间网通信进程需要的五元组标示)。

2、客户/服务器模式:

在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户/服务器,即客

户向服务器发出服务请求,服务器接收到请求后,提供相应服务。客户/服务器模式的建立

基于以下两点:首先,建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需

要共享,从而造就拥有众多资源的主机提供服务,资源较少的客户请求服务这一非对等作

用。其次,网间进程通信完全是异步的,相互通信的进程间既不存在父子关系,又不共享

内存缓冲区,因此需要一种机制为希望通信的进程间建立关系,为二者的数据交换提供同

步,这就是基于客户/服务器模式的TCP/IP。

二、程序模块及函数介绍

1、面向连接的套接字系统时序图

2、各函数介绍

(1)加载socket库──WSAStartup()

每个Winsock应用程序必须加载相应版本的Winsock DLL。如果在调用Winsock

函数前没有加载Winsock库,函数返回SOCKECT_ERROR,出错代码将是

WSANOTINITIALISED。

原型:int WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData)

例如: int err;

WSADATA wsaData;