使用CSockets进行文件传送

这是一对实现在两台计算机间传送文件的函数,我没有看到过使用CSocket进行文件传送的代码,希望此代码对你有用.代码中包含两个函数,第一个用于服务器端,第二个用于客户端.
需要说明的是本文提供的方法并不适用于大型文件的传送.

步骤/方法

  • 01

    下面给出服务器端代码: void SendFile() { #define PORT 34000 /// Select any free port you wish AfxSocketInit(NULL); CSocket sockSrvr; sockSrvr.Create(PORT); // Creates our server socket sockSrvr.Listen(); // Start listening for the client at PORT CSocket sockRecv; sockSrvr.Accept(sockRecv); // Use another CSocket to accept the connection CFile myFile; myFile.Open("C:\\ANYFILE.EXE", CFile::modeRead | CFile::typeBinary); int myFileLength = myFile.GetLength(); // Going to send the correct File Size sockRecv.Send(&myFileLength, 4); // 4 bytes long byte* data = new byte[myFileLength]; myFile.Read(data, myFileLength); sockRecv.Send(data, myFileLength); //Send the whole thing now myFile.Close(); delete data; sockRecv.Close(); }

  • 02

    以下是客户端代码 void GetFile() { #define PORT 34000 /// Select any free port you wish AfxSocketInit(NULL); CSocket sockClient; sockClient.Create(); // "127.0.0.1" is the IP to your server, same port sockClient.Connect("127.0.0.1", PORT); int dataLength; sockClient.Receive(&dataLength, 4); //Now we get the File Size first byte* data = new byte[dataLength]; sockClient.Receive(data, dataLength); //Get the whole thing CFile destFile("C:\\temp\\ANYFILE.EXE", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); destFile.Write(data, dataLength); // Write it destFile.Close(); delete data; sockClient.Close(); }

  • 03

    最好确认服务器端函数在客户端函数之前运行,本文的代码可以方便地添加到工程中,解决服务器/客户模型中的文件传送问题.

(0)

相关推荐

  • 电脑通过无线把视频文件传送到iPhone版迅雷看看

    很多朋友都在手机上安装了迅雷看看,用于在网上观看视频。那如果想要从电脑上通过无线把视频文件传送到迅雷看看,应该怎么操作呢? 这里以iPhone版的迅雷看看为例,简单介绍一下如何在电脑上把文件通过同一个 ...

  • 怎么用QQ把文件传送给别人?

    在生活和工作中我们有时候需要把做好的工作资料传给别人。那么怎么样用QQ把文件传给别人呢?那我就来和大家分享一下吧。 方法/步骤 登录上QQ,选择好友列表中需要传送文件的好友。 点击聊天对话框中的传送文 ...

  • qq轻聊版7.5接收不到文件传送消息怎么办

    qq轻聊版7.5(15463)的Bug具体表现为,当你的QQ好友向你传送文件时,尽管你在线,你的好友也会被提示"对方可能通过移动设备登录-..",文件传送会自动转为离线. 但离线完 ...

  • WinRAR文件传送时发生断点的续传方法

    我们常常遇到文件在传送的过程中,因为一些意外有时候会出现断点的状况,比如说在使用WinRAR压缩文件的时候.使用QQ传送文件的时候,设置是使用FlashFXP上传文件的时候,那么,遇到传送文件断点的时 ...

  • 怎么通过AirDrop功能实现两台Mac苹果电脑的文件传送

    今天,小编给大家介绍通过AirDrop功能实现两台Mac苹果电脑文件传送的方法,希望对大家有所帮助.具体如下:1. 首先,请大家打开电脑,然后选择屏幕左边的[AirDrop]选项.2. 第二步,接下来 ...

  • 如何使用蓝牙功能将文件传送到另一部手机中

    有的小伙伴在使用手机过程中,为了节省手机中的流量,因此想要使用蓝牙功能将文件传送到另一部手机中,但是却不知道如何传送,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,点击并打开设置应用.2. 第 ...

  • 如何使用微信将手机上的文件传送到PC电脑上

    我们在手机上接收的文件,想要传输到电脑上,可以借助微信来进行,今天就跟大家介绍一下如何使用微信将手机上的文件传送到PC电脑上的具体操作步骤.1. 首先打开电脑,登录微信.2. 之前登录过,只需要在手机 ...

  • 怎么将电脑文件传送到U盘存储空间

    最近有小伙伴问怎么将电脑文件传送到U盘里面,下面小编介绍一下.具体如下:1. 首先,插入电脑的USB接口,打开"此电脑"图标,查看[有可移动存储设备]栏目,可以看到u盘的磁盘,双击 ...

  • 怎么使用蓝牙将手机上的文件传送到电脑上

    我们在使用手机的时候,想要将文件从手机传输到电脑上,有很多方法可以实现,这里给大家介绍一下怎么使用蓝牙将手机上的文件传送到电脑上的具体操作步骤.1. 首先打开电脑,依次点击左下方的开始---设置--- ...