我试图在我的应用程序中添加一个简单的桌面查看器,但是我在使用套接字类将位图图像发送到我的服务器时遇到了问题。我查看网络,我发现只是使用流和二进制格式,但它会改变我的整个网络协议。所以我希望这里有人可以帮助我。
这是获取位图图像和发送功能的代码。
private Image getDesktopImage()
{
Rectangle sb = Screen.PrimaryScreen.Bounds;
Bitmap img = new Bitmap(sb.Width, sb.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(img)) g.CopyFromScreen(sb.X, sb.Y, 0, 0, sb.Size, CopyPixelOperation.SourceCopy);
return img;
}
public void sendData(string msg)
{
byte[] sdata = Encoding.ASCII.GetBytes(msg);
clientSocket.Send(sdata, 0, sdata.Length, 0);
}
这是我接收功能的功能
void clientHandle(object handle)
{
int _handle = (int)handle;
try
{
byte[] receiveByte = new byte[1028];
int buffer = serverSocket[_handle].Receive(receiveByte, 0, receiveByte.Length, 0);
Array.Resize(ref receiveByte, buffer);
if (Encoding.ASCII.GetString(receiveByte) == "")
{
DisconnectedEvent(_handle);
}
ReceivedEvent(_handle, Encoding.ASCII.GetString(receiveByte));
clientHandle(_handle);
}
catch
{
DisconnectedEvent(_handle);
}
}
所以我的问题是如何转换位图图像,以便我可以使用sendData函数发送位图图像。然后当我收到它并将其转换回图像。感谢