TCP通訊協議

服務端客服端流程圖

tcp服務端

 // 1. 新建一個Socket 服務器端 連接對象
  // 參數 尋址范圍,數據類型,協議格式
  Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  byte[] ip = { 192, 168, 1, 1 };
  IPAddress address = new IPAddress(ip);
  IPEndPoint point = new IPEndPoint(address, 8090);
  tcpServer.Bind(point); // 2. 綁定Ip和端口號
  tcpServer.Listen(100); // 3. 設置監聽連接的最大請求數
  Socket newSocket = tcpServer.Accept(); // 4. 等待客戶端的連接,會阻塞當前線程,直到接收到客戶端的連接

  string sendMessage = "Hello Welcome Connect";
  newSocket.Send(Encoding.UTF8.GetBytes(sendMessage)); // 5.向客戶端發送一條消息

 byte[] data = new byte[1024];
 int length = newSocket.Receive(data);
 Console.WriteLine("接收到客戶端的數據"+Encoding.UTF8.GetString(data, 0, length));
 Console.ReadKey();         

tcp客戶端

 //1. 建立客戶端連接對象 
    // 參數 尋址范圍,數據類型,協議格式
    Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

   // 2. 建立一個連接,請求連接到服務器
  clientSocket.Connect(new IPEndPoint(new IPAddress(new byte[] { 192, 168, 199, 117 }), 8090));

  // 建立一個用來接受數據的容器
   byte[] data = new byte[1024];
 // 3. 接受服務端發送的數據
   int length = clientSocket.Receive(data); // 該數組用來接受數組,接受服務端傳遞的數據 , 返回值,用來表示本次接收到的數據長度
 // 4. 將服務器端發送過來的數據轉換成字符串
 string reciveMessage = Encoding.UTF8.GetString(data, 0, length);
 Console.WriteLine(reciveMessage);

 string message = Console.ReadLine();
 clientSocket.Send(Encoding.UTF8.GetBytes(message));

Console.ReadKey();
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • socket() socket()函數用于根據指定的地址族、數據類型和協議來分配一個套接口的描述字及其所用的資源 ...
    你好667閱讀 270評論 0 0
  • 1.這篇文章不是本人原創的,只是個人為了對這部分知識做一個整理和系統的輸出而編輯成的,在此鄭重地向本文所引用文章的...
    SOMCENT閱讀 13,134評論 6 174
  • 參考:http://www.2cto.com/net/201611/569006.html TCP HTTP UD...
    F麥子閱讀 2,976評論 0 14
  • 目錄 TCP協議的基本概念面向鏈接的服務可靠的服務序列號字節流傳輸 TCP協議數據段的格式TCP偽頭部 TCP協議...
    kirito_song閱讀 3,022評論 2 33
  • 個人認為,Goodboy1881先生的TCP /IP 協議詳解學習博客系列博客是一部非常精彩的學習筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,093評論 0 8