Can not send EGLImageKHr from one device to another device

Hello,

I am trying to send an EGLImageKHR object which is created from a render buffer from one device to another device .I am trying to use QT Tcp socket/server implementation to send the EGLImageKhr object but could not manage it successfully. So The sender code part is as the following:

if (SenderSocket != NULL)
{
    //qDebug() << "func " << __FUNCTION__ << "line" << __LINE__;
    QByteArray data;
    data.append(reinterpret_cast<const char*>(mImage),size);
    //data.append(reinterpret_cast<QByteArray *>(mImage));
    QDataStream out(&data, QIODevice::WriteOnly);
    out.setDevice(SenderSocket);
    out << data;
    //qDebug() << "func " << __FUNCTION__ << "line" << __LINE__;
    //qDebug() << "func " << __FUNCTION__ << "line" << __LINE__ << "data size" << data.size();
}

and client part to import the EGLImageKHR is as the following:

QByteArray recievedData;
in.startTransaction();

in >> recievedData;

if (!in.commitTransaction())
    return;
//qDebug() << "Received data size" << recievedData.size();

const unsigned char *data = reinterpret_cast<const unsigned char*>(recievedData.constData());

int size = recievedData.size();
mData = new unsigned char [size];
memcpy((void*)mData,data,size);

if (!mData)
{
    return;
}

GLuint renderBuffer;
GLuint frameBuffer;
int mWinWidth = mwindow->width();
int mWinHeight = mwindow->height();
int rowPack;

glGetIntegerv(GL_PACK_ALIGNMENT, &rowPack);

glGenRenderbuffers( 1, &renderBuffer );
glBindRenderbuffer( GL_RENDERBUFFER, renderBuffer);

glEGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER,  (void*)(mData));

if (glGetError()==GL_NO_ERROR)
{
    qDebug() << "glEGLImageTargetRenderbufferStorageOES buff is OK" << glGetError();
}
else
{
    qDebug() << "glEGLImageTargetRenderbufferStorageOES buff error is " << glGetError();
            fprintf(stderr, "failed to create glEGLImageTargetRenderbufferStorageOES: %s\n", get_gl_error());
}

glBindRenderbuffer(GL_RENDERBUFFER, 0);



glGenFramebuffers( 1, &frameBuffer );
glBindFramebuffer( GL_FRAMEBUFFER, frameBuffer);
glFramebufferRenderbuffer( GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, renderBuffer);

if( glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
{
    qDebug() << "KHR Framebuffer error is " << glGetError();
            fprintf(stderr, "failed to create framebuffer: %s\n", get_gl_error());
}
else
{
    qDebug() << "KHR Framebuffer is OK" << glGetError();
}
glBindFramebuffer( GL_FRAMEBUFFER, mwindow->openglContext()->defaultFramebufferObject() );

// Test part
int* buffer = new int[ mWinWidth * mWinHeight * 3 ];
glPixelStorei(GL_PACK_ALIGNMENT, 1);
glReadPixels( 0, 0, mWinWidth, mWinHeight, GL_BGR, GL_UNSIGNED_BYTE, buffer );

FILE   *out = fopen("tga_file", "w");
short  TGAhead[] = {0, 2, 0, 0, 0, 0, 640, 480, 24};
fwrite(&TGAhead, sizeof(TGAhead), 1, out);
fwrite(buffer,  mWinWidth * mWinHeight*3, 1, out);
fflush(out);
fclose(out);
delete[] buffer;

glDeleteRenderbuffers(1,&renderBuffer);
renderBuffer = 0;
glDeleteFramebuffers(1,&frameBuffer);
frameBuffer = 0;
glPixelStorei(GL_PACK_ALIGNMENT, rowPack);
delete mData;
mData = NULL;

All the time I got error from glEGLImageTargetRenderbufferStorageOES and there is no error from glGetError() function.

So most probably I am doing something wrong while sending/processing the EGLImageKHR.Could you please check and lemme know how to fix it ?

Regards