导航:首页 > IDC知识 > cftp服务器源码

cftp服务器源码

发布时间:2020-10-19 18:11:13

1、C语言实现从FTP下载、上传文件

1.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,你可从此处读取信息。如果要执行定位在服务器上的指定的服务(例如,HTTP,FTP或Gopher)行为,必须与此服务器建立适当的连接。

2.例程:

#include <winsock.h>
#include <stdio.h>
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;
File.Open("C://ip.txt",CFile::modeCreate|CFile::modeReadWrite);
//如果文件事先不存在的话,就需要CFile::modeCreate,否则就不需要。
File.WriteString(ip+":"+"8000");
File.Close();  //注意,这里一定要把文件关闭,否则不能成功上传
CString host="204.45.67.11";  
  CString user="19337";  
  CString password="1234567";  
  TRACE(":%s:%s:%s:%s/n", host,   
user, password, "C://ip.txt");  
  CInternetSession session  
(AfxGetApp()->m_pszAppName);  
  CFtpConnection* pConn = NULL;  
  pConn = session.GetFtpConnection (host,user,password);  
  if (pConn) {  
if (!pConn->PutFile("C://ip.txt","ip.txt"))
{  
MessageBox("传送文件失败??");  
} else {  
MessageBox("传送文件成功!");  
}  
pConn->Close();  
delete pConn;  
session.Close();  
  } else {  
MessageBox("Cannot Connect");  
  }

2、linux下c语言编程实现ftp下载,匿名登录FTP服务器时,输入USER anonymous,返回331...

正确的格式是这样的:

USER 用户名
PASS 密码

如果匿名登录,那么就应该是

USER Anonymous
PASS

如果不行,应该是FTP服务器不支持匿名登录。

3、怎样用c或c++语言编写ftp程序 客户端和服务器端的源代码

这个问题太大了点,你可以去starforge等开源网站上去找这方面的工程。。。

4、Java实现ftp服务器源代码

/**
* 创建日期:Dec 23, 2008
* 类名:Ftp.java
* 类路径:org
* 修改日志:
*/
package org;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;

/**
* @author 南山一根葱
* @Description ftp操作
*/
public class Ftp {
/**
* 获取Ftp目录下的列表
*/
public void getftpList() {
String server = "";// 输入的FTP服务器的IP地址
String user = "";// 登录FTP服务器的用户名
String password = "";// 登录FTP服务器的用户名的口令
String path = "";// FTP服务器上的路径
try {
FtpClient ftpClient = new FtpClient();// 创建FtpClient对象
ftpClient.openServer(server);// 连接FTP服务器
ftpClient.login(user, password);// 登录FTP服务器
if (path.length() != 0) {
ftpClient.cd(path);
}
TelnetInputStream is = ftpClient.list();
int c;
while ((c = is.read()) != -1) {
System.out.print((char) c);
}
is.close();
ftpClient.closeServer();// 退出FTP服务器
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
/**
* 下载FTP上的文件
*/
public void getFtpFile() {
String server = "";// 输入的FTP服务器的IP地址
String user = "";// 登录FTP服务器的用户名
String password = "";// 登录FTP服务器的用户名的口令
String path = "";// FTP服务器上的路径
String filename = "";// 下载的文件名
try {
FtpClient ftpClient = new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
if (path.length() != 0)
ftpClient.cd(path);
ftpClient.binary();
TelnetInputStream is = ftpClient.get(filename);
File file_out = new File(filename);
FileOutputStream os = new FileOutputStream(file_out);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
is.close();
os.close();
ftpClient.closeServer();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
/**
* 上传文件到FTP
*/
public void putFtpFile() {
String server = "";// 输入的FTP服务器的IP地址
String user = "";// 登录FTP服务器的用户名
String password = "";// 登录FTP服务器的用户名的口令
String path = "";// FTP服务器上的路径
String filename = "";// 上传的文件名
try {
FtpClient ftpClient = new FtpClient();
ftpClient.openServer(server);
ftpClient.login(user, password);
if (path.length() != 0)
ftpClient.cd(path);
ftpClient.binary();
TelnetOutputStream os = ftpClient.put(filename);
File file_in = new File(filename);
FileInputStream is = new FileInputStream(file_in);
byte[] bytes = new byte[1024];
int c;
while ((c = is.read(bytes)) != -1) {
os.write(bytes, 0, c);
}
is.close();
os.close();
ftpClient.closeServer();
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
}

5、求大神给份MFC写的FTP服务器和客户端源码学习下,万分感谢!

ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。
控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。这里控件容器就是浏览器,用户不需要通过浏览器调用控件的属性或方法。
因此,开发面向Web的ActiveX控件比开发桌面的控件还要简单些,所复杂的是如何将该控件很好地嵌入主页,使用户能正常浏览。

6、哪儿有linux下的ftp server的c程序源码?

ftp server ? 可以到sourceforge或者github开源软件仓库上去查找下载。流行的开源软件也可以,比如专ftp filezilla server就是比较流行的。不过不属一定是c代码了,也许是c++的。

7、求易语言绕过cfTP安全的源码

用    vmp保护模块

VMP保护开始()

欲保护的程序

VMP保护结束()

这个是模块 送上

8、能否给一个java开发的具有图形界面的ftp服务器客户端源代码呢

/ **
*创建日期:2008年12月23日

*类名:Ftp.java

*类路径:组织结构

*更改日志:

* / 包组织结构;

进口的java.io.File;

进口java.io.FileInputStream中;

进口java.io.FileOutputStream中;

进口的java。 io.IOException;

进口sun.net.TelnetInputStream;

进口sun.net.TelnetOutputStream;

进口sun.net.ftp.FtpClient;

> / **

* @作者南山地狱

* @说明FTP操作

* /

公共类的Ftp {

/ **

* BR />获取FTP目录* / 公共无效getftpList(){

字符串服务器=“IP地址 /输入FTP服务器/>弦乐用户=”“;/ / FTP服务器的登录用户名

字符串密码=“”;/ /登录FTP服务器的用户名

字符串路径密码=“”;/ / FTP路径上的服务器

尝试{
> FtpClient的FTP客户端=新FtpClient的();/ /创建FtpClient的对象

ftpClient.openServer(服务器);/ /连接到FTP服务器

ftpClient.login(用户名,密码);/ / FTP服务器 BR />如果(path.length()= 0){

ftpClient.cd(路径);

}

TelnetInputStream是= ftpClient.list();

诠释三;

而{

System.out.print((char)的C)((C = is.read())= -1!);

}

掉} is.close ();

ftpClient.closeServer();/ /退出FTP服务器

}赶上(IOException异常前){

System.out.println(ex.getMessage());

}

}

/ **

*
* /

公共无效getFtpFile(){

字符串服务器=“”;/ / IP地址中输入FTP服务器

弦乐用户=“”;/ / FTP服务器的登录用户名

字符串密码=“”;/ /登录密码为FTP服务器的用户名

字符串路径=“路径

字符串文件名“;/ /上=的FTP服务器”“;/ /下载文件名称

尝试{

FtpClient的FTP客户端=新FtpClient的();

ftpClient.openServer(服务器);

ftpClient.login(用户名,密码);

如果(路径。长度()= 0)

ftpClient.cd(路径);!

ftpClient.binary();

TelnetInputStream是= ftpClient.get(文件名);

文件file_out =新的文件(文件名);

文件输出流OS =新的文件输出流(file_out);

字节[]字节=新字节[1024];

诠释三;

而((C = is.read(字节))= -1){

os.write (字节,0,C);

}!

掉} is.close();

os.close();

ftpClient.closeServer();

}赶上(IOException异常前){

System.out.println (ex.getMessage());

}

FTP}

/ **

*文件上传到FTP

* /

公共无效putFtpFile() {

字符串服务器=“”;/ /输入IP地址对服务器

字符串用户的地址=“”;/ / FTP服务器的登录用户名

字符串密码=“”;/ / FTP服务器登录用户名密码

字符串路径=“”就 / FTP服务器/>字符串文件名=“”;/ /上传的文件名

FtpClient的FTP客户端=新的try { FtpClient的();

ftpClient.openServer(服务器);

ftpClient.login(用户名,密码);

如果(!path.length()= 0)

ftpClient.cd (路径);

ftpClient.binary();

TelnetOutputStream OS = ftpClient.put(文件名);

文件file_in =新的文件(文件名);

文件输入流是=新的文件输入流(file_in);

字节[]字节=新字节[1024];

诠释三;

同时(! (C = is.read(字节))= -1){

操作系统。写(字节,0,C);

}

掉} is.close();

os.close();

ftpClient.closeServer();

}赶上(IOException异常前){

System.out.println(ex.getMessage());

}

}
}

9、关于C语言FTP服务器上传数据实现方法

FTP服务器是现成的 ? 那你就是要写客服端咯。 看FTP协议跟socket套接字。

与cftp服务器源码相关的知识