|
TCP/IP 发送bmp图片问题(出在读取bmp文件那)
[复制链接]
昨天调出了发送文件的程序 发送内容只有几个字符的文件没问题 今天想往PC上发送bmp图片(是OV9650采集的一帧图片保存在开发板上的),读出的数据就不对了 只读出三个字符
我是想着open文件 read文件 一个字符一个字符的发送 在PC上再把数据导成图片 现在就是读取文件内容不对
void CTCPClientExDlg::OnOpenfile()
{
CFile MyFile;
CString m_FileName;
CFileDialog FileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,_T("All Files(*.*)|*.*||"));
if(FileDlg.DoModal()==IDOK)
{
m_FileName=FileDlg.GetPathName();
MyFile.Open (m_FileName,CFile::modeRead); //打开文件
DWORD sendlen =MyFile.GetLength() ; //得到文件长度
CHAR *szBuf=new CHAR [sendlen];//开辟存储空间
MyFile.Read ( szBuf, sendlen); //读文件
m_SendEdit.Format(_T("%s"),szBuf);
MyFile.Close (); //关闭文件
UpdateData(false); //更新编辑框显示
AfxMessageBox(_T("Read OK")); //输出读成功消息
delete []szBuf;//清除存储空间
}
}
void CTCPClientExDlg::OnSend()
{
int nErrorCode;
int cnt = 0, actlen = 0;
if (m_Socket == NULL)
return;
// UpdateData(TRUE);
int sendlen = m_SendEdit.GetLength(); /* 取得输入字符串长度 */
char *psendbuff = new char[sendlen];
for(int i = 0; i < sendlen;i++)
psendbuff = (char)m_SendEdit.GetAt(i); /* 转换为单字节字符 */
while(cnt < sendlen)
{ // 发送数据
actlen = send(m_Socket, psendbuff + cnt, sendlen - cnt, 0);
if (actlen == SOCKET_ERROR )
{
MessageBox(_T("TCP 数据发送失败!"));
nErrorCode = WSAGetLastError();
delete[] psendbuff;
return;
}
cnt = cnt + actlen;
if (cnt < sendlen)
Sleep(1000);
}
delete[] psendbuff;
}
打开bmp文件 读出来的是2个乱码和一个空格 发送到PC上是“B6 ” 大家帮忙看看啊
|
|