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來進行通訊。