2 qq 22077347 qq_22077347 于 2015.06.05 18:59 提问

老师让做一个VC++MFC聊天程序怎么实现发送图片?
mfc

VC++MFC聊天程序,我只会实现基本的文本对话功能,怎么实现发送图片?采用的是客户端/服务器模式。希望热心人帮帮忙啊!

8个回答

mojibanbo
mojibanbo   2015.06.05 22:45

发送图片和发送文字的区别在于,一般文字是通过人工输入,然后程序获取并保存到内存变量或缓存中,通过SOCKET发送出去。而图片要么通过剪切板复制,或者读取硬盘中的图片文件到内存中后再通过SOCKET发送。因此你可以把任何图片数据当做二进制数据,通过CFile这样的类读入一个分配好的char型数组,然后再发送出去。你可以先发送图片文件的长度,然后再发送实际的图片数据。这样在服务器端完整接收了所有的图片数据,才显示图片。

LogicTeamLeader
LogicTeamLeader   2015.06.05 19:29

去查查对象的序列化和反序列化。
把图片序列化为一个字符串,把字符串发送过去,在接收端将此字符串反序列化为一个图片对象,然后显示。

a1193561652
a1193561652   Rxr 2015.06.06 01:28

什么文件都是文件,怎么打开txt就怎么打开jpg,然后读出文件内容,发送出去。

guwei4037
guwei4037   Ds   Rxr 2015.06.06 06:42

很简单,用 ReadFile 把图片读到 BYTE 数组里,返送就行了。

显示图片用 RichEditBox.

u012377333
u012377333   Rxr 2015.06.06 09:35

发送端,打开文件,把文件名和图片的内容发送到接收方,接收方创建文件,写入文件内容

lx624909677
lx624909677   Ds   Rxr 2015.06.06 12:21

创建一个char*类型的buffer放你的图片的二进制数据,然后发送这个buffer

zuishikonghuan
zuishikonghuan   2015.06.06 14:32

把图片分段读入缓冲区,并用socket发送,读图片可以使用Win32API,CreateFile GetFileSize ReadFile。
接收方把图片写入到临时文件( CreateFile WriteFile ),并用Picture Control显示

datou431
datou431   Rxr 2015.06.10 15:24

用 ReadFile 把图片读到 BYTE 数组里,返送就行了

Csdn user default icon
上传中...
上传图片
插入图片