客户端程序关键代码://客户端发送数据的代码,既发送XML字符,也发送图片,图片的大小<1M
 public static void SendMessage(int Type, string fileName, byte[] Content)
 {            if(socket == null)
                throw new ArgumentNullException("连接不存在");            MyTreaty my = new MyTreaty(Type, fileName, Content); //对数据进行序列化
            byte[] SendData = my.GetBytes();            int i = 0;
            i = socket.Send(SendData,0, SendData.Length, SocketFlags.None);
  }服务器程序的关键代码:服务器接受数据并把图片写入文件//接收客户端发送数据
        public static string receive(Socket socket)
        {
            int DataCount = 0;
            string result = null;
            try
            {
                byte[] receData = new byte[BufferSize];
                byte[] tempData = new byte[65535];
                int offset = 0;                do
                {
                    DataCount = socket.Receive(tempData, 0, socket.Available, SocketFlags.None);
                    int j = 0;
                    for (int i = offset; i < offset + DataCount; i++,j++)
                        receData[i] = tempData[j];                    offset += DataCount;
                } while (DataCount >= 8192 || DataCount == 0);                MyTreaty my = MyTreaty.GetMyTreaty(receData); //对接收到的数据进行反序列化                result = receiveData(my);
            }
            catch (Exception e)
            {
                return "";
            }            return result;
        }        private static string receiveData(MyTreaty AcceptData)
        {
            string result = "";
            if (AcceptData.Type == 0)
            {
                result = Encoding.BigEndianUnicode.GetString(AcceptData.Content, 0,AcceptData.Content.Length);
            }
            else
            {
               if (!Directory.Exists("D:\\Pic\\"))
                    Directory.CreateDirectory("D:\\Pic\\");
               if (File.Exists("D:\\Pic\\" + AcceptData.FileName))
                     return "";
                MemoryStream ms = new MemoryStream(AcceptData.Content);
                FileStream fs = new FileStream("D:\\Pic\\" + AcceptData.FileName, FileMode.OpenOrCreate, FileAccess.Write);
                BinaryWriter ft = new BinaryWriter(fs);
                ft.Write(ms.ToArray());
                fs.Dispose();
                fs.Close();
                ms.Close();
                result = "";
            }
            return result;
        }问题在于接受完图片并且写入文件后,图片传输正确,但是在进行下一次socket接收数据的时候被阻塞,这是为什么,如何解决这个问题,希望有高手能回答,先说一声谢谢了。