在我看来,当 A Bitmap Object 被创建时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);
接收方被阻塞,直到关闭套接字或半关闭套接字(发送方)
我想重复发送位图对象给某人如你所知,连接开销不可忽略,这个函数应该用一个套接字处理
有人建议在对象之间使用特殊字母进行分类(利用一个套接字发送多个对象)但是这种解决方案使源代码复杂我想让源代码尽可能简单。
最后我的问题总结如下
- 如何使用一个不使用特殊字母的套接字重复发送位图对象?
- 我也想让源代码尽可能简单(保持上面的源代码)
- 最后,我如何将 EOF 发送到退出构造函数(接收方)