TCP是一种面向连接的,可靠的,基于字节流的传输层通信协议。TCP的工作过程可以分为三个阶段:一、连接的建立; 二、传输数据; 三、断开连接
一。建立连接
TCP的连接建立就像打电话一样,需要一个呼叫的过程。当我们用TCP编写的程序,必须先建立TCP连接。TCP协议的连接建立通过三次握手来完成的,三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
//服务端
在建立连接时接收方可以说是服务器开启一个新线程监听客户端的连接请求,
csharp中可以通过TcpListener的AcceptTcpClient方法接收客户端的链接请求
获得与客户端相对应的的tcpClient对象,然后利用tcpClient对象
的GetStream方法获得NetWorkStream对象(提供用于网络访问的基础数据流)

一。建立连接
TCP的连接建立就像打电话一样,需要一个呼叫的过程。当我们用TCP编写的程序,必须先建立TCP连接。TCP协议的连接建立通过三次握手来完成的,三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
//服务端
在建立连接时接收方可以说是服务器开启一个新线程监听客户端的连接请求,
csharp中可以通过TcpListener的AcceptTcpClient方法接收客户端的链接请求
获得与客户端相对应的的tcpClient对象,然后利用tcpClient对象
的GetStream方法获得NetWorkStream对象(提供用于网络访问的基础数据流)
