如何在c#中使用tcp和socket类发送位图图像

时间:2014-09-08 09:28:31

标签: c# sockets tcp

我试图在我的应用程序中添加一个简单的桌面查看器,但是我在使用套接字类将位图图像发送到我的服务器时遇到了问题。我查看网络,我发现只是使用流和二进制格式,但它会改变我的整个网络协议。所以我希望这里有人可以帮助我。

这是获取位图图像和发送功能的代码。

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函数发送位图图像。然后当我收到它并将其转换回图像。感谢

0 个答案:

没有答案