我有問題,在TCP套接字接收圖像[.NET 4.0]無法通過TCP套接字接收圖像?
服務器:
Socket s = null;
Socket client;
private void button1_Click(object sender, EventArgs e)
{
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Bind(new IPEndPoint(IPAddress.Any, 9988));
s.Listen(1);
client = s.Accept();
pictureBox1.Image = Image.FromStream(new NetworkStream(client));
//Server freezes here and waiting for the image .. but in the Client side.. it tells that it sent.
Console.WriteLine("Received.");
}
客戶:
Socket s = null;
private void button1_Click(object sender, EventArgs e)
{
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9988));
Rectangle bounds = Screen.GetBounds(Point.Empty);
Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height);
Graphics g = Graphics.FromImage(bitmap);
g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
bitmap.Save(new NetworkStream(s), ImageFormat.Png);
Console.WriteLine("sent.");
}
編輯: IM做一個大的應用程序。 。image正在收到很好..然後我做了一些代碼的變化,所以它變得很複雜,知道我究竟是什麼改變..現在它不工作..所以我做了新的項目D嘗試了代碼..仍然無法正常工作..我知道還有其他方法可以做到這一點..但我更喜歡這樣做。 任何人都知道如何解決它?
也許你開始,通過描述你的問題到底在哪裏...... – Carsten 2012-03-23 12:44:35
@CarstenKönig在服務器代碼中的評論..服務器沒有收到它在pictureBox線阻止..你能讀它嗎! – 2012-03-23 12:47:04
服務器pictureBox1控件或類是否明白它期待一個png格式的字節流?它可能沒有完成,因爲可能有png格式的元數據表示圖像的大小,如果接收端不知道這一點,它將不知道它何時接收到所有數據? – 2012-03-23 14:52:08