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

灵灵敲代码 2013-08-21 02:45:41
谁有VS2005 MFC 做的客户端向服务器发送图片的例子。我可以做到服务器向客户端发图片,就是不知道怎么从客户端向服务器发图片!!!
...全文
181 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
  • 打赏
  • 举报
回复
这有区别么?

18,356

社区成员

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

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