谁有VS MFC 做的客户端向服务器发送图片的例子

灵灵敲代码 2013-08-21 02:45:41
谁有VS2005 MFC 做的客户端向服务器发送图片的例子。我可以做到服务器向客户端发图片,就是不知道怎么从客户端向服务器发图片!!!
...全文
211 7 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
这有区别么?
内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、转运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入分析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性分析部分,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景。

18,356

社区成员

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

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