Пример #1
0
 private void Receive()
 {
     while (true)
     {
         byte[] receivedByte = tCPClient.receiveData();
         if (receivedByte != null)
         {
             byte   i   = receivedByte[0];
             byte[] buf = new byte[receivedByte.Length - 1];
             Array.Copy(receivedByte, 1, buf, 0, receivedByte.Length - 1);
             if (i == 0)
             {
                 rTBMSG.Text += "已接收>>" + Encoding.UTF8.GetString(buf) + "\n";
             }
             else if (i == 1)
             {
                 new Thread(doiii).Start(Encoding.UTF8.GetString(buf));
             }
             else if (i == 2)
             {
                 string         filePath = "";
                 SaveFileDialog sfd      = new SaveFileDialog();
                 sfd.Title            = "保存文件";
                 sfd.InitialDirectory = @"C:\Users\Administrator\Desktop";
                 sfd.FileName         = Encoding.UTF8.GetString(buf).Trim();
                 //如果没有选择保存文件路径就一直打开保存框
                 while (true)
                 {
                     sfd.ShowDialog(this);
                     filePath = sfd.FileName;
                     if (string.IsNullOrEmpty(filePath))
                     {
                         continue;
                     }
                     else
                     {
                         break;
                     }
                 }
                 byte[] buffer = tCPClient.receiveData();
                 //保存接收的文件
                 using (FileStream fsWrite = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write))
                 {
                     fsWrite.Write(buffer, 0, buffer.Length);
                 }
             }
         }
     }
 }