TCP是一种面向连接的,可靠的,基于字节流的传输层通信协议。
- 1.TCP的工作过程
连接的建立:三次握手,传输数据,连接终止。
- 2.TCP的主要特点
面向连接,端对端通信,高可靠性,全双工方法传输,数据以字节方法传输,传输数据无消息边界。
- 3.TCP的同步于异步
利用TCP开发时,.NET框架提供两种工作方式:同步和异步。
同步的工作方式是指利用TCP编写的程序执行到监听或接受语句时,在未完成当前工作前不再继续执行,线程出于阻塞状态。
异步的工作方式是指程序执行到监听或接受语句时,无论当前工作是否完成,都会继续往下执行。
关于同步于异步的区别和联系,我自己也没有弄清楚。同步的执行速度快(对于计算机来说),异步执行速度慢(但给用户感觉执行快一些)。
- 4.连接方式
4.1使用Socket建立连接
客户端部分代码:
1 //定义变量 2 public IPEndPoint ipEndPoint; 3 public Socket clentSocket; 4 public NetworkStream netStream; 5 public Thread threadConnection; 6 7 //... 8 9 //初始化变量 10 ipEndPoint = new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text)); 11 clentSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 12 clentSocket.Connect(ipEndPoint);
服务端部分代码:
1 //定义变量 2 public IPEndPoint ipEndPoint; 3 public Socket clientSocket; 4 public Socket serverSocket; 5 6 //.... 7 8 //初始化变量 9 ipEndPoint = new IPEndPoint(IPAddress.Any, 65535); 10 serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 11 serverSocket.Bind(ipEndPoint); 12 serverSocket.Listen(65535);
使用这种方式是利用Socket来进行通信。
4.2使用TcpClient和TcpListener建立连接
客户端部分代码:
1 public TcpClient tcpClient = null; 2 public NetworkStream networkStream = null; 3 4 //.... 5 6 tcpClient = new TcpClient(); 7 tcpClient.Connect(txtIP.Text, int.Parse(txtPort.Text));
服务端部分代码:
1 private TcpListener tcpLister = null; 2 private TcpClient tcpClient = null; 3 4 //... 5 6 tcpLister = new TcpListener(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text)); 7 tcpLister.Start();
这种方式是利用.NET封装的TcpClient和TcpListener来进行通讯。