
C语言中没有FtpPutFile函数,这是VB中的函数。
C语言可以使用CStdioFile函数打开本地文件。使用类CInternetSession 创建并初始化一个Internet打开FTP服务器文件。
CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。
流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。
使用类CInternetSession 创建并初始化一个或多个同时的Internet 会话。如果需要,还可描述与代理服务器的连接。
如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释URL并管理它。它可处理由URL资源“file://”标志的本地文件的请求。如果传给它的名字是本地文件,OpenURL 将返回一个指向CStdioFile对象的指针。
如果使用OpenURL在Internet服务器上打开一个URL,你可从此处读取信息。如果要执行定位在服务器上的指定的服务(例如,>
例程:
#include <winsockh>#include <stdioh>
WORD wVersionRequested;
WSADATA wsaData;
char name[255]; //name里是本机名
CString ip; //本机IP
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 1, 1 );
if ( WSAStartup( wVersionRequested, &wsaData ) == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa ((struct in_addr )hostinfo->h_addr_list);
}
}
WSACleanup( );
}
// AfxMessageBox(name);//name里是本机名
// AfxMessageBox(ip); //ip中是本机IP
CStdioFile File;
FileOpen("C://iptxt",CFile::modeCreate|CFile::modeReadWrite);
//如果文件事先不存在的话,就需要CFile::modeCreate,否则就不需要。
FileWriteString(ip+":"+"8000");
FileClose(); //注意,这里一定要把文件关闭,否则不能成功上传
CString host="204456711";
CString user="19337";
CString password="1234567";
TRACE(":%s:%s:%s:%s/n", host,
user, password, "C://iptxt");
CInternetSession session
(AfxGetApp()->m_pszAppName);
CFtpConnection pConn = NULL;
pConn = sessionGetFtpConnection (host,user,password);
if (pConn) {
if (!pConn->PutFile("C://iptxt","iptxt"))
{
MessageBox("传送文件失败??");
} else {
MessageBox("传送文件成功!");
}
pConn->Close();
delete pConn;
sessionClose();
} else {
MessageBox("Cannot Connect");
}
1建议4台电脑设置固定的ip地址,且在同一网段,如分别设为192168110——192168114,掩码2552552550。不然,每次开机可能会分配到不同的ip地址,FTP服务器的地址就可能经常变化。
2选择一台机器安装一个FTP服务器程序(如192168110的机器),FTP服务器推荐使用serv-u,然后进行必要的软件设置,并启动FTP服务器程序。
要使FTP服务器能够正常使用,还有2个关键问题(新手容易忽略的),就是设置防火墙规则,使别人能访问你的FTP,同时,你的FTP服务器能访问网络。
步骤如下(以XP自带防火墙为例):
(1)查看防火墙是否允许Serv-U访问网络,控制面板->windows防火墙->例外,查看是否有Serv-u FTP Server且前面选择框已打勾。如下图。
如果没有,就点击左下角的“添加程序”,选择FTP服务器的安装路径和程序文件,确定。
(2)添加规则允许其他人访问你的这台192168110,控制面板->windows防火墙->例外,就点击左下角的“添加端口”,名称随便,端口21,协议TCP,再重复添加一遍,端口还是21,协议选UDP。
现在,在其他机器上在地址栏中输入ftp://192168110就能访问你的FTP了。
FTP(File Transfer Protocal),是用于Internet上的控制文件的双向传输的协议。同时,它也是一个应用程序。
设置ftp服务器的方法:
工具/原料
IIS net framework 电脑
方法/步骤
1、打开控制面板->程序和功能->启用或关闭 windows 功能,窗口中,勾选Internet Information Services下面的FTP服务器三个选项,点击确定。
2、打开控制面板->管理工具,双击Internet Information Services(IIS)管理器。
3、进入新界面,鼠标右击网站,点击添加 FTP 站点。
4、进入新窗口,输入站点名称,选择文件存放的路径,点击下一步。
5、进入新界面,填写当前配置的服务器ip地址,端口号默认21,可以修改,点击下一步。
6、进入新界面,根据需要勾选匿名、基本、所有用户、读取、写入,点击完成。
7、在左侧的网站下面显示刚刚添加的FTP站点名称。
8、即可使用ftp://ip地址:端口在浏览器或者文件夹地址栏中输入运行。
架设一台FTP服务器其实很简单。首先,要保证你的机器能上网,而且有不低于ADSL 512Kbps的网络速度。其次,硬件性能要能满足你的需要。最后,需要安装FTP服务器端的软件,这类软件很多,可以使用微软的IIS(Internet Information Server 因特网信息服务系统),也可以使用专业软件。不同的软件提供的功能不同,适应的需求和 *** 作系统也不同。一般来说,系统最低要求如下:CPU:PⅢ 450MHz以上
内存:256MB SDRAM以上
带宽:ADSL 512Kbps以上
至于 *** 作系统,Windows 98/Me/NT/2000/XP均可,如果对服务器的性能和安全性要求很低,可以采用Windows 98和Windows Me。本文中,如无特殊说明,均以Windows XP专业版为 *** 作系统,其余 *** 作系统下FTP服务器的架设及设置均大同小异。
一、用IIS架设
如果只是想建个小型的同时在线用户数不超过10个的FTP服务器,且不会同时进行大流量的数据传输,可以用IIS 5.0作为服务器软件来架设(IIS只适用于Windows NT/2000/XP *** 作系统)。
1.安装
Windows XP默认安装时不安装IIS组件,需要手工添加安装。进入控制面板,找到“添加/删除程序”,打开后选择“添加/删除Windows组件”,在d出的“Windows组件向导”窗口中,将“Internet信息服务(IIS)”项选中。在该选项前的“√”背景色是灰色的,这是因为Windows XP默认并不安装FTP服务组件。再点击右下角的“详细信息”,在d出的“Internet信息服务(IIS)”窗口中,找到“文件传输协议(FTP)服务”,选中后确定即可。
安装完后需要重启。Windows NT/2000和Windows XP的安装方法相同。
2.设置
电脑重启后,FTP服务器就开始运行了,但还要进行一些设置。点击“开始→所有程序→管理工具→Internet信息服务”,进入“Internet信息服务”窗口后,找到“默认FTP站点”,右击鼠标,在d出的右键菜单中选择“属性”。在“属性”中,我们可以设置FTP服务器的名称、IP、端口、访问账户、FTP目录位置、用户进入FTP时接收到的消息等。
1)FTP站点基本信息
进入“FTP站点”选项卡,其中的“描述”选项为该FTP站点的名称,用来称呼你的服务器,可以随意填,比如“我的小站”;“IP地址”为服务器的IP,系统默认为“ 全部未分配 ”,一般不须改动,但如果在下拉列表框中有两个或两个以上的IP地址时,最好指定为公网IP;“TCP端口”一般仍设为默认的21端口;“连接”选项用来设置允许同时连接服务器的用户最大连接数;“连接超时”用来设置一个等待时间,如果连接到服务器的用户在线的时间超过等待时间而没有任何 *** 作,服务器就会自动断开与该用户的连接。
2)设置账户及其权限
很多FTP站点都要求用户输入用户名和密码才能登录,这个用户名和密码就叫账户。不同用户可使用相同的账户访问站点,同一个站点可设置多个账户,每个账户可拥有不同的权限,如有的可以上传和下载,而有的则只允许下载。
3)安全设定
进入“安全账户”选项卡,有“允许匿名连接”和“仅允许匿名连接”两项,默认为“允许匿名连接”,此时FTP服务器提供匿名登录。“仅允许匿名连接”是用来防止用户使用有管理权限的账户进行访问,选中后,即使是Administrator(管理员)账号也不能登录,FTP只能通过服务器进行“本地访问”来管理。至于“FTP站点 *** 作员”选项,是用来添加或删除本FTP服务器具有一定权限的账户。IIS与其他专业的FTP服务器软件不同,它基于Windows用户账号进行账户管理,本身并不能随意设定FTP服务器允许访问的账户,要添加或删除允许访问的账户,必须先在 *** 作系统自带的“管理工具”中的“计算机管理”中去设置Windows用户账号,然后再通过“安全账户”选项卡中的“FTP站点 *** 作员”选项添加或删除。但对于Windows 2000和Windows XP专业版,系统并不提供“FTP站点 *** 作员”账户添加与删除功能,只提供Administrator一个管理账号。
提示:匿名登录一般不要求用户输入用户名和密码即可登录成功,若需要,可用“anonymous”作为用户名,以任意电子邮件地址为密码来登录。
4)设置用户登录目录
最后设置FTP主目录(即用户登录FTP后的初始位置),进入“主目录”选项卡,在“本地路径”中选择好FTP站点的根目录,并设置该目录的读取、写入、目录访问权限。“目录列表样式”中“UNIX”和“MS-DOS”的区别在于:假设将G \Ftp设为站点根目录,则当用户登录FTP后,前者会使主目录显示为“\”,后者显示为“G \Ftp”。
设置完成后,FTP服务器就算真正建成了。如果前面IP地址为218.1.1.1,则用户使用FTP客户端软件(用来登录FTP服务器的上传/下载软件,如CuteFTP、FlashFXP等,如无特别说明,本文中所称FTP客户端软件均以CuteFTP Pro 2.0为例)时,主机处填218.1.1.1,端口填21,此服务器的地址表述为:ftp //218.1.1.1 21。IIS虽然安装简单,设置较简便,但功能不强,管理也很麻烦,尤其是连新建一个基本的授权访问账户都要进行繁杂的设置,而且IIS本身的安全性也比较差,容易受到诸如“红色代码”等专门针对IIS漏洞进行攻击的病毒侵袭,因而很多人都喜欢使用第三方的FTP服务器软件来架设。
二、用Serv-U等第三方FTP服务器软件架设
除IIS外,还有很多FTP服务器软件可以架设,如Wu-FTP、ProFtpd、Serv-U等,但大部分只适用于Unix、Linux系统,如果使用Windows系统,强烈推荐使用Serv-U。Serv-U(下载地址:>
正确的格式是这样的:
USER 用户名PASS 密码
如果匿名登录,那么就应该是
USER AnonymousPASS
如果不行,应该是FTP服务器不支持匿名登录。
Serv-U是一种被广泛运用的FTP服务器端软件,支持 9x/ME/NT/2K 等全Windows系列。它设置简单,功能强大,性能稳定。FTP 服务器用户通过它用 FTP协议能在 internet上共享文件。它并不是简单地提供文件的下载,还为用户的系统安全提供了相当全面的保护。例如:您可以为您的FTP 设置密码、设置各种用户级的访问许可等等。Serv-U不仅100%遵从通用FTP标准,也包括众多的独特功能可为每个用户提供文件共享完美解决方案。它可以设定多个FTP 服务器、限定登录用户的权限、登录主目录及空间大小等,功能非常完备。它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。华军下载地址>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)