程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 應用C#完成基於TCP和UDP協定的收集通訊法式的根本示例

應用C#完成基於TCP和UDP協定的收集通訊法式的根本示例

編輯:C#入門知識

應用C#完成基於TCP和UDP協定的收集通訊法式的根本示例。本站提示廣大學習愛好者:(應用C#完成基於TCP和UDP協定的收集通訊法式的根本示例)文章只能為提供參考,不一定能成為您想要的結果。以下是應用C#完成基於TCP和UDP協定的收集通訊法式的根本示例正文


C#中應用TCP通訊

TCP通訊須要通訊兩邊都在線,所以須要先啟動辦事端停止監聽,客戶端能力取得銜接,辦事端代碼:

static void Main(string[] args) 
    { 
      TcpClient client = null; 
      NetworkStream stream = null; 
      byte[] buffer = null; 
      string receiveString = null; 
 
      IPAddress localIP = IPAddress.Parse("127.0.0.1"); 
      int localPort = 11000; 
      TcpListener listener = new TcpListener(localIP, localPort);//用當地IP和端話柄例化Listener 
      listener.Start();//開端監聽 
      while (true) 
      { 
        client = listener.AcceptTcpClient();//接收一個Client 
        buffer = new byte[client.ReceiveBufferSize]; 
        stream = client.GetStream();//獲得收集流 
        stream.Read(buffer, 0, buffer.Length);//讀取收集流中的數據 
        stream.Close();//封閉流 
        client.Close();//封閉Client 
 
        receiveString = Encoding.Default.GetString(buffer).Trim('\0');//轉換成字符串 
        Console.WriteLine(receiveString); 
      } 
    } 

只要辦事端開啟監聽後,客戶端能力准確銜接,所以辦事端要一向開啟監聽,客戶端每次發送數據,都要起首與辦事端樹立銜接,銜接樹立完成後才停止數據發送。客戶端代碼:

static void Main(string[] args) 
    { 
      string sendString = null;//要發送的字符串 
      byte[] sendData = null;//要發送的字節數組 
      TcpClient client = null;//TcpClient實例 
      NetworkStream stream = null;//收集流 
 
      IPAddress remoteIP = IPAddress.Parse("127.0.0.1");//長途主機IP 
      int remotePort = 11000;//長途主機端口 
 
      while (true)//逝世輪回 
      { 
        sendString = Console.ReadLine();//獲得要發送的字符串 
        sendData = Encoding.Default.GetBytes(sendString);//獲得要發送的字節數組 
        client = new TcpClient();//實例化TcpClient 
        try 
        { 
          client.Connect(remoteIP, remotePort);//銜接長途主機 
        } 
        catch (System.Exception ex) 
        { 
          Console.WriteLine("銜接超時,辦事器沒有呼應!");//銜接掉敗 
          Console.ReadKey(); 
          return; 
        } 
        stream = client.GetStream();//獲得收集流 
        stream.Write(sendData, 0, sendData.Length);//將數據寫入收集流 
        stream.Close();//封閉收集流 
        client.Close();//封閉客戶端 
      } 
    } 

201649111019897.jpg (456×186)

C#中應用UDP通訊
UDP通訊是無銜接通訊,客戶端在發送數據前無需與辦事器端樹立銜接,即便辦事器端不在線也能夠發送,然則不克不及包管辦事器端可以收到數據。
辦事器端代碼:

static void Main(string[] args) 
    { 
      UdpClient client = null; 
      string receiveString = null; 
      byte[] receiveData = null; 
      //實例化一個長途端點,IP和端口可以隨便指定,等挪用client.Receive(ref remotePoint)時會將該端點改成真正發送端端點 
      IPEndPoint remotePoint = new IPEndPoint(IPAddress.Any, 0); 
 
      while (true) 
      { 
        client = new UdpClient(11000); 
        receiveData = client.Receive(ref remotePoint);//吸收數據 
        receiveString = Encoding.Default.GetString(receiveData); 
        Console.WriteLine(receiveString); 
        client.Close();//封閉銜接 
      } 
    } 

客戶端代碼:

static void Main(string[] args) 
    { 
      string sendString = null;//要發送的字符串 
      byte[] sendData = null;//要發送的字節數組 
      UdpClient client = null; 
 
      IPAddress remoteIP = IPAddress.Parse("127.0.0.1"); 
      int remotePort = 11000; 
      IPEndPoint remotePoint = new IPEndPoint(remoteIP, remotePort);//實例化一個長途端點 
 
      while (true) 
      { 
        sendString = Console.ReadLine(); 
        sendData = Encoding.Default.GetBytes(sendString); 
 
        client = new UdpClient(); 
        client.Send(sendData, sendData.Length, remotePoint);//將數據發送到長途端點 
        client.Close();//封閉銜接 
      } 
    } 

201649111055659.jpg (363×174)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved