c#中通过TCP套接字发送/接收图像
本文关键字:图像 套接字 TCP | 更新日期: 2023-09-27 18:05:53
我试图将图像发送到连接到我的TCP侦听器(服务器)的客户端。我成功地通过网络发送和接收文本,但我无法从我的服务器发送图片到客户端。我想在客户端窗口的图片框中显示图片。这是一个代码,我用来发送和接收文本,但不是图片
服务器:
接收机:
void TListner()
{
try
{
IPEndPoint ipendp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8080);
TcpListener tl = new TcpListener(ipendp);
tl.Start();
Socket s1 = tl.AcceptSocket(); ;
NetworkStream ns = new NetworkStream(s1);
StreamReader sr = new StreamReader(ns);
while (true)
{
textBox1.Text = sr.ReadLine();
}
}
catch
{
Application.Exit();
}
}
发送者: MemoryStream ms = new MemoryStream();
sw.Write("TEST STRING");
sw.Flush();
客户:接收机:
void TCP_CLIENT()
{
try
{
IPEndPoint ipendp = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8080);
TcpClient tcpc = new TcpClient();
tcpc.Connect(ipendp);
NetworkStream ns = tcpc.GetStream();
StreamReader sr = new StreamReader(ns);
while (true)
{
textBox1.Text = sr.ReadLine();
}
}
catch
{
Application.Exit();
}
我想在客户端窗口中名为PBox1的图片框中显示图片。
您发现发送和接收文本,因为您正在使用StreamReader
和StreamWriter
。它们处理文本。你没有实际显示的代码,你尝试用于发送图片,但基本上你不能使用Reader
/Writer
,除非你执行某种额外的编码首先(例如base64)。
另外,除非你打算在发送后立即关闭写套接字,否则你可能应该在数据之前写入数据长度(例如4字节),以便接收套接字知道它需要接收多少。