我有问题,在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