fread函数读入图片数据到内存及用send函数发送时的参数问题,请指教

枕戈待旦勇往直前 2012-12-05 11:26:22

问题描述:
功能:读取bmp图片到内存,通过socket函数中的send方法将数据传送到接收端
1、 
unsigned char *pBmpBuf; //读入图像数据的指针

bool readBmp(char *bmpName)
{
//二进制读方式打开指定的图像文件
FILE *fp=fopen(bmpName,"rb");
if(fp==0) return 0;
  
......

//申请位图数据所需要的空间,读位图数据进内存

pBmpBuf=new unsigned char[lineByte * bmpHeight];
fread(pBmpBuf,1,lineByte * bmpHeight,fp); //第一个参数类型为:unsigned char *pBmpBuf
//关闭文件
fclose(fp);
return 1;
}


int socket()
{

  ......

send(sockClient,pBmpBuf,sizeof(pBmpBuf),0); //send方法的第二个参数应该是const char *


  printf("************Send Successfully!************\n");
closesocket(sockClient);
WSACleanup(); // 终止对套接字库的使用
return 0;


int _tmain(int argc, _TCHAR* argv[])
{
socket();
system("pause");
return 0;
}

问题是: fread(pBmpBuf,1,lineByte * bmpHeight,fp);方法中pBmpBuf为unsigned char *pBmpBuf
但在socket函数的send方法里 send(sockClient,pBmpBuf,sizeof(pBmpBuf),0); //pBmpBuf参数应该是const char *

报错为:


错误error C2664: “send”: 不能将参数 2 从“unsigned char *”转换为“const char *”

应该如何修改,才能将图片数据读入的内存pBmpBuf通过send方法发送出去?

 请指点,谢谢
...全文
251 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaozhiyong110 2012-12-05
  • 打赏
  • 举报
回复
send(sockClient,(char *)pBmpBuf,sizeof(pBmpBuf),0);
yaozhiyong110 2012-12-05
  • 打赏
  • 举报
回复
强制转换就行了...

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧