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); } } } } }