//打开文件
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.Filter = "图片文件(*.jpg;*.bmp;*.png;*.gif)|*.jpg;*.bmp;*.png;*.gif";
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    FileInfo fileInfo = new FileInfo(dlg.FileName);
                    byte[] buffer = new byte[fileInfo.Length];
                    using (FileStream stream = fileInfo.OpenRead())
                    {
                        stream.Read(buffer, 0, buffer.Length);                        if (sendSocket.Connected)
                        {
                            sendSocket.Send(buffer);
                        }
                    }
                       }发送的时候出现值不在预期的范围内。
还有窗体程序接收时,文字能接收成功,不知道图片怎么接收,并显示在picturebox中 
请高人指点

解决方案 »

  1.   

    try
                {
                    Socket rSocket = (Socket)ar.AsyncState;
                    int rEnd = rSocket.EndReceive(ar);
                    for (int i = 0; i < clientNum; i++)
                    {                    if (clientSocket[i].Connected)
                        {
                            clientSocket[i].Send(msgBuffer, 0, rEnd, 0);
                                                  
                            int size =0;
                            byte[] buf = new byte[1024];
                            do
                            {
                                size = rSocket.Receive(buf, 1024, SocketFlags.None);
                                if (size > 0)
                                {
                                    
                                    //String tmp = Encoding.ASCII.GetString(buf, 0, size);
                                    String tmp = Encoding.GetEncoding("gb2312").GetString(buf, 0, size);
                                    textBox1.Text = DateTime.Now+"收到:"+clientSocket[clientNum].RemoteEndPoint.ToString()+":"+tmp + "\r\n";                                 }
                            } while (size > 0);                             }
                        rSocket.BeginReceive(msgBuffer, 0, msgBuffer.Length, 0, new AsyncCallback(RecieveCallBack), rSocket);
                    }
                 
                }
    这是接收文字的代码,不知道怎么把接收图片的代码写入!!!
      

  2.   

    试看看
    FileInfo fileInfo = new FileInfo(dlg.FileName);
      byte[] buffer = null;
      using (FileStream stream = fileInfo.OpenRead())
      {
    buffer = new byte[stream.Length];