ソケットを使用してjpgデータを送信するのにいくつか問題があります。
送信側:
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 slice_bmp = new Bitmap(s);
送信者のソケットを閉じるまでブロックされます。送信側のソケットが閉じられた後、画像は正常に描画されます。その操作がブロックされている理由を知りたいですか?
また、Bitmap のコンストラクタの引数として Networkstream のインスタンスを使用するのは正しいですか? (私のコードは継承に基づいています)