位图对象构造函数阻塞

时间:2013-03-22 02:47:45

标签: c# sockets bitmap

在我看来,当一个位图对象由Stream(socket)创建时,构造函数等待EOF之类的东西,比如socket.close(),socket.shutdown)

这是源代码

发件人方

Socket client_s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,ProtocolType.Tcp);
IPEndPoint serverEP = new IPEndPoint(IPAddress.Loopback, 4567);
client_s.Connect(serverEP);
NetworkStream stream = new NetworkStream(client_s);
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);

接收方

clientSocket = listenSocket.Accept();
NetworkStream s = new NetworkStream(clientSocket); 
Bitmap slice_bmp = new Bitmap(s);
Graphics g = this.CreateGraphics();
g.DrawImage(slice_bmp,0,0);

接收方被阻塞,直到关闭套接字或半关闭套接字(发送方)

我想重复发送Bitmap Object给某人 如您所知,连接开销不可忽略 应该用一个插槽处理此函数

有些人建议在对象之间使用特殊字母进行分类(发送多个对象利用一个套接字) 然而,该解决方案使源复杂 我想尽可能简化源代码。

最后我的问题总结如下

  1. 如何使用一个不使用特殊字母的套接字重复发送位图对象?
  2. 我也希望尽可能简化源代码(保持上面的源代码)
  3. 最后,我如何将EOF发送到现有的施工功能(接收方)

0 个答案:

没有答案
相关问题