前一段时间看了孙鑫的《VC++深入详解》,觉得非常好,现在将其中TCP通信总结一下,作为一个积累了。 客户机/服务器模式在操作过程中采取的主动请求的方式。首先服务器方要先启动,并根据请求提供相应的服务。在开始学习时,没有很好理解服务器要先启动了,致使做的第一个程序运行不成功。
服务端程序创建程序的步骤。
1.打开一个通信通道并告知本地主机,它愿意在某一地址和端口上接收客户请求。即创建socket,将使用bind函数将创建的socket与本地地址与端口绑定。
2.等待客户请求到达端口。使用liten将socket设为监听模式,从而等待客户端的请求。
3.接收到重复服务请求,处理该请求并发送应答信号。接收到并发服务请求,要激活一个新的进程(或线程)来处理这个客户请求。新进程(新线程)处理此客户请求,并不需要对其他请求做出响应。服务完成后,关闭此进程与客户的通信链路,并终止。使用accept函数接受到客户端的请求,并根据accept返回的socket进行与客户端通信,此时使用send/recv等函数。
4.返回第二步,等待别一个客户请求。返回第二步即等待另一个客户端的请求。
5.关闭服务器,在程序结束时,关闭本次服务的资源。
客户端程序创建的步骤:
1.打开一个通信通道,并连接到服务器所在主机的特定端口。(即创建socket)
2.向服务器发送服务请求报文,等待并接收应答;继续提出请求。( 使用conect函数)
3.请求结束后关闭通信通道。
下面介绍几个常用的函数及