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; wVersionRequested=MAKEWORD(2,1); //使用 2
1 版本的 socket err=WSAStartup(w