• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 网络通信SOCKET编程中如何实现各种文档的传输(MFC),txt的可以但其他如word就不行了

网络通信SOCKET编程中如何实现各种文档的传输(MFC),txt的可以但其他如word就不行了

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了 网络通信SOCKET编程中如何实现各种文档的传输(MFC),txt的可以但其他如word就不行了等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 网络通信SOCKET编程中如何实现各种文档的传输(MFC),txt的可以但其他如word就不行了
描述:

我的读写文件的代码是这样的,TXT的没有问题,但其他的都不对了。
我是通过串行化CArchive来实现传输的
定义的主要变量和初始化为
CArchive* m_aSessionIn;
CArchive* m_aSessionOut;
CSocketFile* m_sfSocketFile;
m_sfSocketFile= new CSocketFile(this);
m_aSessi /> m_aSessi /> 读文件内容到缓冲区(m_dlg为对话框句柄)
文件对话框的打开和保存都是用CFileDialog实现的,都是设置的ALL files
                  CFile file(m_dlg->m_NeedTransferFiles[i],CFile::modeRead|CFile::shareDenyWrite);
m_dlg->SetWindowText("正在传输"+m_dlg->m_NeedTransferFiles[i]);
byte *buffer=NULL;
long count=file.GetLength();
buffer= new byte[count+1];
file.Read(buffer,count);
buffer[count]='\0';
m.m_iCommand=2;
m.m_strText=buffer;
m_dlg->m_TransferSocket.SendMessage(&m);
m_dlg->SetWindowText(m_dlg->m_NeedTransferFiles[i]+"传输完毕!");
file.Close();
将缓冲区内容写到文件中的代码主要为。msg为CMessg对象,它是我自己添加的,主要是实现串行化的
                  m_file.Write(msg.m_strText,msg.m_strText.GetLength()); 
m_file.Close();
CMessg中的函数主要为
void CMessg::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << m_iCommand;
ar << m_strText;
}
else
{
ar >> m_iCommand;
ar >> m_strText;
}
}
另外sSendmessage函数主要为
if (m_aSessionOut != NULL)
{
msg->Serialize(*m_aSessionOut);
m_aSessionOut->Flush();
return TRUE;
}
我是这方面的新手,请大家指教了


解决方案1:

直接以二进制的形式发过去就行,不用这么麻烦!

解决方案2:

你这样肯定不行了,因为你是用字符串来传递的,应该以字节流来传递.


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 网络通信SOCKET编程中如何实现各种文档的传输(MFC),txt的可以但其他如word就不行了

相关文章

  • 2017-06-05 如何隐藏Word,Excel的“文件”Tab
  • 2017-06-04 不使用ALT,直接使用C/C++创建ITypeInfo时,METHODDATA结构怎么填充?
  • 2017-06-04 开发OCX控件时,如何让外部调用(如在VB中)的方法中可以传类对像(如CPoint)
  • 2017-06-04 急求各位:用vc编写计算机端口扫描研究与系统开发的源代码(附源码解析)!
  • 2017-06-04 COM基本问题
  • 2017-06-04 我用ATL作service,怎样才能把服务做成自启动?
  • 2017-06-05 请教高手,怎样在自己创建的线程里用MediaPlayer控件播放视频文件?
  • 2017-06-04 关于串口控件通讯的问题
  • 2017-06-04 三层模型的问题,请教微软专家
  • 2017-06-05 急急急急:::如何获得操作系统中某一个进程的状态,知道线程的ID号,怎样获得此线程的状态??????

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 一个比较怪的控件运行问题?大家给指导一下
    • 请问线程和OnTimer函数哪个用来做后台的数据采集比较好?
    • 进程间的服务器/客户程序怎么调试?
    • 为什么在线程中不能AFXOLEINIT()?
    • 使用ExecWB打印中一个回调函数执行不了
    • 我想求得一个最简单的MFCCOM程序例子,那有仁兄们
    • SetWaitableTimer的计时精度怎么这么低?
    • 关于建立问命名管道的基本问题。一定给分
    • 求助,windowsCE下在窗口输出文本的函数?
    • 为何会出现如此链接警告?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有