socket编程简述:
它是基于TCP/IP协议,socket就是一个可以连通网络上不同计算机程序之间的管道,把一堆数据从管道的A端扔出去,则会从管道B端(要有序同时还可以从CDEF...端冒出来).管道的端口有两个因素来唯一确认,机及其的IP地址和程序的所使用的端口号.
socket可以支持数据的发送和接收,他会定义一种称为套接字的变量,发送数据时首先创建套接字,然后使接字的sendto等方法对准某个IP/端口进行数据发送,接收端也首先创建套接字,然后将该套接字绑定到一个IP/端口上,所有发向此端口的数据会被该套接字的recv等函数独处.如同读取文件中的数据一样.
TCP/IP的socket提供三种类型套接字:流式套接字,数据报式套接字,原始式套接字.
客户端编程步骤:
1:加载套接字,创建套接字(WSAStartup()/socket())
2:向服务器发送链接请求(connect())
3:和服务器端进行通信(send()/recv())
4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())
三次握手:
1.第一次握手:建立连接时,客户端发送同步序列到服务器,并进入发送状态,等待服务器确认
2.第二次握手:服务器收到同步序列,确认并同时自己也发送一个同步序列+确认标志,此时服务器进入接收状态
3.第三次握手:客户端收到服务器发送的包,并向服务器发送确认标志,随后链接成功
注意:是在链接成功后再进行数据传输