将二进制数据从JavaScript画布发送到C和viceversa

将二进制数据从JavaScript画布发送到C和viceversa,javascript,c,canvas,binary,cgi,Javascript,C,Canvas,Binary,Cgi,我需要运行ACGIC程序来处理来自画布的JavaScript二进制数据,但我无法正确发送二进制数据。我做错了什么?你能帮助我吗?多谢各位 以下是JS代码: imgData=ctx.getImageData(0,0,300,150); function submit() { httpRequest.open("POST", "/cgi-bin/transform.cgi", true); httpRequest.send(imgData.data.buffer); }

我需要运行ACGIC程序来处理来自画布的JavaScript二进制数据,但我无法正确发送二进制数据。我做错了什么?你能帮助我吗?多谢各位

以下是JS代码:

imgData=ctx.getImageData(0,0,300,150);

 function submit() { 
    httpRequest.open("POST", "/cgi-bin/transform.cgi", true);
    httpRequest.send(imgData.data.buffer);
    }

function show(){
var myArray = new ArrayBuffer(imgData.data.length);
myArray=httpRequest.responseText;
var data = new Uint8ClampedArray(myArray);
imgData.data=data;
ctx.putImageData(imgData,0,0);
}
这是CGIC代码

#include <stdio.h>
#include "cgic.h"
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

void read();

int cgiMain() {
    cgiHeaderContentType("text/html");  
    read(); 
    return 0;
}

void read()
{
char *lenstr;   
long len;
lenstr = getenv("CONTENT_LENGTH");
sscanf(lenstr,"%ld",&len);
unsigned char input[len+1];

fread (input,1,len,stdin);
for(int i = 0; i<len; i++)
    printf("%u", input[i]);
}
#包括
#包括“cgic.h”
#包括
#包括
#包括
无效读取();
int cgiMain(){
cgiHeaderContentType(“文本/html”);
read();
返回0;
}
无效读取()
{
char*lenstr;
龙伦;
lenstr=getenv(“内容长度”);
sscanf(lenstr、%ld、&len);
无符号字符输入[len+1];
fread(输入,1,len,stdin);
对于(int i=0;i