的形象.FromStream使用networkStream

本文关键字:使用 networkStream FromStream | 更新日期: 2023-09-27 18:17:26

我试图使用Image类的FromStream方法来设置使用网络流的tcp连接接收的图像。这里有两边的代码:

服务器:

TcpListener server = new TcpListener(IPAddress.Any, 34567);
server.Start();
TcpClient client = server.AcceptTcpClient();
byte[] buffer = new byte[256];
int n = 0;
Console.WriteLine("{0}, {1}", Encoding.ASCII.GetString(buffer, 0, n), client.Client.RemoteEndPoint);
byte[] img = File.ReadAllBytes(@"C:'Users'Luca'Desktop'video grest'8599929-nessun-segnale.jpg");
client.Client.Send(img);
客户:

TcpClient tcp = new TcpClient("127.0.0.1", 34567);
NetworkStream stream = tcp.GetStream();
MessageBox.Show("fatto");
pictureBox1.Image = Image.FromStream(stream);

问题是客户端程序在最后一条指令上停止并且不前进,如果关闭服务器(甚至30分钟后),它说连接已关闭,但图片框没有显示任何内容…为什么?

的形象.FromStream使用networkStream

我认为你的客户端代码

pictureBox1.Image = Image.FromStream(stream);

期望流在处理图像之前结束。

所以你应该关闭socket服务器端使用:
client.Close();

:

client.Client.Send(img);