C++txt文件传输 下
来源:互联网 发布:淘宝主图怎么做吸引人 编辑:程序博客网 时间:2024/04/28 08:22
这个是发送端。
思路:
文件小就1次传。大了就分开传。
.h
#define _WINSOCK_DEPRECATED_NO_WARNINGS #ifndef _H_H__#define _H_H__#include <iostream>#include <WinSock2.h>#include <string>#include <fstream>#include <thread>#pragma comment (lib,"ws2_32.lib")using namespace std;class C{public: C();~C();static void readfr();};#endif //_H_H__
#include "h.h"SOCKET s;C::C(){WSADATA wsadata;WORD v = MAKEWORD(2, 2);if (WSAStartup(v,&wsadata)==-1){exit(0);}s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);sockaddr_in sin;sin.sin_family = AF_INET;sin.sin_port = htons(4567);sin.sin_addr.S_un.S_addr = inet_addr("192.168.1.3");int n = sizeof(sin);if (::connect(s, (SOCKADDR*)&sin, n) == -1)return;thread t(readfr);t.detach();}C::~C(){WSACleanup();}void C::readfr(){char buf[255];int can = 256;int n;int used= 0;int R = recv(s, buf, 256, 0);buf[R] = '\0';cout << "Get "<<buf << endl;ifstream in("1.txt", ios_base::binary | ios_base::in);if (!in.is_open()){cout << "Open Fail" << endl;return;}in.seekg(0, ios::end);n = in.tellg();in.seekg(0, ios::beg);cout << n << endl;if (n<can){char buff[255];in.read(buff, n);::send(s, buff,n, 0);cout << "send over" << endl;in.close();R = ::recv(s, buff, 256, 0);return;}int num = 0; while (n>0){if (n >can)used = can;elseused = n;n -= used;char * buff = new char[used];in.read(buff, used);::send(s, buff, used, 0);cout << ++num << endl;R = ::recv(s, buff, 256, 0);delete buff;if (R<=0){break;}Sleep(1); } if (in.is_open()) in.close();closesocket(s);}int main(){C c;system("pause");}
1 0
- C++txt文件传输 下
- Linux下C语言Socket实现文件传输
- C++实现txt文件传输 上
- Linux-C下C/S架构实例,实现文件传输功能
- win 32下c语言文件传输客户端1.23
- C\S架构下实现简单的文件传输功能
- C#SocketSC结构文件传输
- C语言文件传输客户端
- C语言文件传输客户端
- 文件传输(C#)
- C#UDP通信+文件传输
- Linux C 实现文件传输
- Linux C实现文件传输
- C#Socket文件传输查询
- C#下实现文件传输
- 考虑下文件传输
- linux下文件传输程序
- linux下的文件传输
- 扩充你的Mac
- 游戏排行榜的实现
- [Azure]使用Azure Automation实现自动开关虚拟机的操作
- redis3.0.7源码阅读(十一)redis数据库rdb
- 无法获得锁/var/lib/dpkg/lock - open (11: 资源暂时不可用)的解决方案
- C++txt文件传输 下
- 专题6-添加调试信息(led)
- linux下几个文件格式的区别
- css3笔记
- Centos6.5搭建smokeping服务
- html5笔记
- 1.Nodejs入门-----简介
- RStudio快捷键
- nmq异步消息队列学习