怎样用usb线连接电脑与手机传输文件
操作系统:windows10
操作手机:苹果手机
苹果手机通过USB连接传输文件具体操作方法如下:
1、安装最新版本的iTunes,打开iTunes,用USB数据线连接上你的iPhone/iPad(第一次连接ios端要输入密码),连接成功后,iTunes会出现下图所示的“设备”图标,点击该图标。
2、选择左侧“文件共享”栏,选择你需要传输到文件的App,然后将你的文件拖动到最右侧的文档栏就可以了。传输文件过程中不会显示进度,文件拖进去传输完成后,文件会显示在列表中。
iPhone和电脑之间传输文件的方法:
1、通过电子邮件、信息或隔空投送无线传输
你可以使用电子邮件、信息和隔空投送将文件从一台设备上发送给自己,然后在另一台设备上下载。请参阅通过电子邮件、信息或隔空投送在 iPhone 和电脑间无线传输文件。
2、通过iCloud自动传输
你可以在云端储存文件、照片和视频等内容,它们会自动在你的iPhone和Mac或Windows PC上保持最新。请参阅通过 iCloud 使文件在 iPhone 和电脑上自动保持最新。
3、通过云储存提供商传输
你可以在Box或Dropbox等服务中储存文件,在iPhone和电脑上均可访问。请参阅通过云储存服务在iPhone和电脑间共享文件。
4、通过外置储存设备传输
你可以将文件拷贝到连接至iPhone或电脑的外置设备,如USB驱动器或SD卡。断开储存设备的连接后,你可以将其连接到其他设备并将文件拷贝到该设备。请参阅通过外置储存设备在iPhone和电脑间传输文件。
5、通过文件服务器传输
将iPhone和Mac或Windows PC连接到文件服务器,你便可以在这些设备间共享文件。请参阅使用文件服务器在iPhone和电脑间共享文件。
6、通过访达或iTunes传输
通过连接线将iPhone连接到Mac或Windows PC后,你可以同步许多类型的数据以及传输许多类型的文件。请参阅通过访达或iTunes在iPhone和电脑间同步内容或传输文件。
工具/材料:以win7系统为例。
1、首先在桌面上,点击“网络”图标。
2、然后在该界面中,地址栏中输入另一台电脑的ip地址,如“//19216810628”。
3、接着在该界面中,点击右侧的“跳转”按钮。
4、之后在该界面中,显示另一台电脑的“Users”共享文件夹。
5、接着在该界面中,打开要传输的文件夹位置。
6、然后在桌面中,选中要传输的文件,右键点击“复制”。
7、然后在要传输的另一台电脑的共享文件夹界面中,右键点击“粘贴”选项即可。
8、最后在该界面中,显示成功完成两台电脑之间的文件传输。
客户机发送:
void sendFile(char filename[256], SOCKET cli_s)
{
using namespace std;
ifstream sendFile(filename, ios::binary); //二进制打开
sendFileseekg(0, ios::end); //定位文件尾部
int len = ftellg(); //取出文件长度
send(cli_s, &len, sizeof(len), 0); //发送文件长度
sendFileseekg(0, 0); //定位文件头部
char sendBuf[4096];
int readBytes;
while (!sendFileeof()){
readBytes = sendFileget(sendBuf, sizeof(sendBuf));
if (readBytes>0) //逐个发送,直到读不出数据
send(cli_s, sendBuf, readBytes, 0);
}
sendFileclose();
}
服务器接收:
void recvFile(char filename[256], SOCKET newsock)
{
using namespace std;
int len = 0;
recv(newsock, &len, sizeof(len), 0); //先接收文件长度
if (len==0)
return;
ofstream recvFile(filename, ios::out | ios::app | ios::binary);//二进制
char recvBuf[4096];
int receivedBytes;
while(len>0) { //len表示残余长度
receivedBytes = recv(newsock, recvBuf, sizeof(recvBuf), 0);
if (receivedBytes>0) { //读到数据了
recvFile << recvBuf;
len -= receivedBytes; //残余长度递减
}
}
recvFileclose();
}
strlen只对英文有效。如果是中文的话,strlen是不准确的。只能按照二进制的方式来读写文件。
如果按照二进制的方式进行网络传输的话,接收端无法知道何时结束接收。所以通常,在发送数据流之前,先发送出去数据长度,这样接收端就知道何时结束接收数据了。
缓冲太小的话,读写文件次数会增多,影响性能。缓冲太大的话,占用内存多,而且堆栈上分配不出大的缓存。一般写65536一下吧,更详细的可以自己百度去。
0条评论