社区
网络编程
帖子详情
谁有VS MFC 做的客户端向服务器发送图片的例子
灵灵敲代码
2013-08-21 02:45:41
谁有VS2005 MFC 做的客户端向服务器发送图片的例子。我可以做到服务器向客户端发图片,就是不知道怎么从客户端向服务器发图片!!!
...全文
181
7
打赏
收藏
谁有VS MFC 做的客户端向服务器发送图片的例子
谁有VS2005 MFC 做的客户端向服务器发送图片的例子。我可以做到服务器向客户端发图片,就是不知道怎么从客户端向服务器发图片!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
灵灵敲代码
2013-08-22
打赏
举报
回复
谢谢啊,解决了,看来要好好学学SOCKET编程!!!
yaozhiyong110
2013-08-22
打赏
举报
回复
客户端: //创建Socket clientSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(clientSocket==INVALID_SOCKET) { MessageBox(L"Falied",0,0); return -1; } SOCKADDR_IN serverAddr; serverAddr.sin_family=AF_INET; serverAddr.sin_addr.s_addr=inet_addr(IP_ADDR); serverAddr.sin_port=htons(PORT); memset(serverAddr.sin_zero,0,sizeof(serverAddr.sin_zero)); ret=connect(clientSocket,(struct sockaddr*)&serverAddr,sizeof(serverAddr)); if(ret==SOCKET_ERROR) { MessageBox(L"Connect Falied:",0,0); return -1; } ifstream in("F://psb.jpg",fstream::in|fstream::binary); char buf[1024]={0}; while(!in.eof()) { in.read(buf,sizeof(buf)); ret=send(clientSocket,buf,1024,0); if(ret==SOCKET_ERROR) { //cout<<"Send Into error: "<<GetLastError()<<endl; //return -1; in.close(); closesocket(clientSocket); break; } } in.close(); closesocket(clientSocket); closesocket(clientSocket); WSACleanup(); 服务器端: //创建Socket serverSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (serverSocket==INVALID_SOCKET) { MessageBox(L"Create Socket Failed",0,0); } SOCKADDR_IN localAddr,clientAddr; localAddr.sin_family=AF_INET; localAddr.sin_addr.s_addr=inet_addr(IP_ADDR); localAddr.sin_port=htons(PORT); memset(localAddr.sin_zero,0,sizeof(localAddr.sin_zero)); ret=bind(serverSocket,(struct sockaddr*)&localAddr,sizeof(localAddr)); if (ret!=0) { MessageBox(L"Bind Error",0,0); } //服务器监听 ret=listen(serverSocket,10); if (ret!=0) { MessageBox(L"Listen Failed",0,0); } while(1) { //接收信息 int addLen=sizeof(clientAddr); clientSocket=accept(serverSocket,(struct sockaddr*)&clientAddr,&addLen); //cout<<"connect is success."<<endl; ofstream out("E://psb.jpg",fstream::out|fstream::binary); char buf[1024]={0}; while (1) { ret=recv(clientSocket,buf,1024,0); if(ret>0) { out.write(buf,sizeof(char)*ret); } else { out.close(); break; } } closesocket(clientSocket); } closesocket(serverSocket); WSACleanup();
灵灵敲代码
2013-08-22
打赏
举报
回复
下面是关键代码: 客户端: //创建Socket clientSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(clientSocket==INVALID_SOCKET) { MessageBox(L"Falied",0,0); return -1; } SOCKADDR_IN serverAddr; serverAddr.sin_family=AF_INET; serverAddr.sin_addr.s_addr=inet_addr(IP_ADDR); serverAddr.sin_port=htons(PORT); memset(serverAddr.sin_zero,0,sizeof(serverAddr.sin_zero)); ret=connect(clientSocket,(struct sockaddr*)&serverAddr,sizeof(serverAddr)); if(ret==SOCKET_ERROR) { MessageBox(L"Connect Falied:",0,0); return -1; } ofstream out("E://psb.jpg",fstream::out|fstream::binary); char buf[1024]={0}; while (1) { ret=recv(clientSocket,buf,1024,0); if(ret>0) { out.write(buf,sizeof(char)*ret); } else { out.close(); break; } } closesocket(clientSocket); WSACleanup(); 服务器端: //创建Socket serverSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (serverSocket==INVALID_SOCKET) { MessageBox(L"Create Socket Failed",0,0); } SOCKADDR_IN localAddr,clientAddr; localAddr.sin_family=AF_INET; localAddr.sin_addr.s_addr=inet_addr(IP_ADDR); localAddr.sin_port=htons(PORT); memset(localAddr.sin_zero,0,sizeof(localAddr.sin_zero)); ret=bind(serverSocket,(struct sockaddr*)&localAddr,sizeof(localAddr)); if (ret!=0) { MessageBox(L"Bind Error",0,0); } //服务器监听 ret=listen(serverSocket,10); if (ret!=0) { MessageBox(L"Listen Failed",0,0); } while(1) { //接收信息 int addLen=sizeof(clientAddr); clientSocket=accept(serverSocket,(struct sockaddr*)&clientAddr,&addLen); //cout<<"connect is success."<<endl; ifstream in("F://psb.jpg",fstream::in|fstream::binary); char buf[1024]={0}; while(!in.eof()) { in.read(buf,sizeof(buf)); ret=send(clientSocket,buf,1024,0); if(ret==SOCKET_ERROR) { //cout<<"Send Into error: "<<GetLastError()<<endl; //return -1; } } in.close(); closesocket(clientSocket); } closesocket(serverSocket); WSACleanup(); 你好,可以帮我看看吗?怎么改成客户端向服务器发图片?网络我不是很了解!!!
yaozhiyong110
2013-08-21
打赏
举报
回复
如果你现在是客户端一连上来服务器就给客户端发图片 那么你改下 客户端一连上服务器就给服务器发不就行了? 无法理解为什么改不了...
灵灵敲代码
2013-08-21
打赏
举报
回复
是这样的,我想通过一台主机(服务器),控制其他主机(客户机)发送图片过来。现在就是可以通过服务器给客户端发,刚好反了(一个客户端对应多个服务器了)。
smwhotjay
2013-08-21
打赏
举报
回复
没区别. 改个收发. 就ok
yaozhiyong110
2013-08-21
打赏
举报
回复
这有区别么?
MFC
例子
和Socket
客户端
服务器
例子
简单的
MFC
例子
和Socket
客户端
服务器
例子
一个服务器对多个
客户端
的
MFC
Socket编程示例(实现简单的即时通讯功能)
环境:Windows XP SP3、 VC++ 6.0、 Windows 2003 SDK 使用步骤: 1、下载解压之后,使用VC++ 6.0打开两个工程:一个是SocketServer和一个ClientSocket工程。 2、首先运行服务器端工程,选默认的端口1008 3、然后运行
客户端
工程,选默认的端口1008和默认的服务器地址 4、再运行多个
客户端
进程 5、如果一切正常,可以每个
客户端
的消息发送,我们可以在服务端和各个
客户端
同步看到消息 实现一个服务器对多个
客户端
的关键是,在服务端的使用集合CPtrList类用保存
客户端
的socket对象,思想与Java中的编程思想一样,只不过Java中会使用多线程技术,在Vector集合保存
客户端
的socket对象,而
MFC
框架提供了CSocket类,它是一个异步通信的类,所以看上去代码比较Java的多线程代码简单的实现了一个对多的即时通讯功能。另外,
MFC
提供了CSocketFile类和CArchive类与CSocket类实现了C++的网络通讯编程功能。 本示例注释非常详细,所有的辅助类都放一个util目录中,然后在工程中分了一个目录来管理这些辅助类,使用代码非常清晰。手动书写部分的代码是按Java的
C++
MFC
实战速成教程(
VS
2013)上
让零基础朋友快速掌握
MFC
的开发,进入到C++的Windows编程之殿堂。
MFC
规模庞大,结构复杂,导致很多初学者学习困难。本教程,则排除一切对初步者的干扰,从
MFC
庞大的结构中,单刀直入,取出最核心的类,以简明易懂的...
利用
mfc
实现的udp通信
例子
,包括,
客户端
服务器端
功能已经实现,需要研究的还有一些东西。共同学习,要一分是为了可以得分看其他的代码。
MFC
+CSocket聊天室程序
这是一个
MFC
聊天室程序的一部分,是服务器端程序,使用
VS
2010+CSocket编写。启动服务器端之后,可以实现和
客户端
端登陆连接,连接之后
客户端
之间可以收发消息。如果同时打开多个
客户端
程序并登陆连接服务器端,那么此时这几个
客户端
程序可以正常聊天。因为程序文件较大,
客户端
和服务器端只能分开上传,请大家谅解。
客户端
程序请见我的另一个资源。
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章