TCP客戶端【TcpClient】


一、阻塞模式

1、命名空間

System.Net.Sockets

2、對象聲明

TcpClient dpu1TcpClient = null;//dpu1tcp客戶端,TcpClient模式
NetworkStream streamToServer = null;//用於接收和發送數據的數據流對象

3、為tcp對象分配空間

dpu1TcpClient = new TcpClient();//DPU1tcp客戶端初始化
4、連接服務器

按鈕回調函數

{

  if (dpu1TcpClient.Connected)//如果已經連接則返回
  {
    return;
  }

  IPAddress ipaddress = IPAddress.Parse("192.168.1.1");//IP和端口
  IPEndPoint endpoint = new IPEndPoint(ipaddress, 8080);
  try
  {
    dpu1TcpClient.Connect(endpoint);
  }
  catch (SocketException e1)//連接失敗
  {
    //打印e1.Message
  }

  if(dpu1TcpClient.Connected)//連接成功則開啟接收線程
  {
    streamToServer = dpu1TcpClient.GetStream();//連接成功之后tcp數據流對象才能分配到空間

    //在這里開啟數據接收線程,使用streamToServer來發送接收數據
  }
}

5、接收數據

線程函數

{

  Byte[] data = new Byte[2048];

  while(true)
  {
    int dataLength = streamToServer.Read(data, 0, data.Length);//這里會阻塞

    //處理數據

   }

}
6、發送數據

發送按鈕回調函數

{

  string msg = "<02GS0000FF>";
  byte[] buffer = Encoding.Unicode.GetBytes(msg); //msg為發送的字符串
  streamToServer.Write(buffer, 0, buffer.Length); //發往服務器

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM