C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!

C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!,第1张

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

例程:

#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");  

  }

c语言有什么实际用处如下:

1、应用软件。Linux操作系统中的应用软件都是使用C语言编写的,因此这样的应用软件安全性非常高。

2、对性能要求严格的领域。一般对性能有严格要求的地方都是用C语言编写的,比如网络程序的底层和网络服务器端底层、地图查询等。

3、系统软件和图形处理。C语言具有很强的绘图能力和可移植性,并且具备很强的数据处理能力,可以用来编写系统软件、制作动画、绘制二维图形和三维图形等。

4、数字计算。相对于其他编程语言,C语言是数字计算能力超强的高级语言。

5、嵌入式设备开发。手机、PDA等时尚消费类电子产品相信大家都不陌生,其内部的应用软件、游戏等很多都是采用C语言进行嵌入式开发的。

6、游戏软件开发。游戏大家更不陌生,很多人就是由玩游戏而熟悉了计算机。利用C语言可以开发很多游戏,比如推箱子、贪吃蛇等。

扩展资料

通过对C语言进行研究分析,总结出其主要特点如下:

1、简洁的语言

C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。

2、具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

3、丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

4、丰富的运算符

C语言包含34个运算符,它将赋值、括号等均是作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。

5、可对物理地址进行直接操作

C语言允许对硬件内存地址进行直接读写,以此可以实现汇编语言的主要功能,并可直接操作硬件。C语言不但具备高级语言所具有的良好特性,又包含了许多低级语言的优势,故在系统软件编程领域有着广泛的应用。

package comyuduntest;

import javarmiRemoteException;

import orgapacheaxisclientCall;

import orgapacheaxisclientService;

import orgapacheaxismessagePrefixedQName;

import orgapacheaxismessageSOAPHeaderElement;

import comcezannegoldenuserException;

import comcezannegoldenuserUserManagerServiceProxy;

import javaxxmlnamespaceQName;

import javanetMalformedURLException;

import javaxxmlrpcServiceException;

import javaxxmlsoapName;

import javaxxmlsoapSOAPException;

public class testWebService {

public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException

{

//标识Web Service的具体路径

String endpoint = "WebService服务地址";

// 创建 Service实例

Service service = new Service();

// 通过Service实例创建Call的实例

Call call = (Call) servicecreateCall();

//将Web Service的服务路径加入到call实例之中

callsetTargetEndpointAddress( new javanetURL(endpoint) );//为Call设置服务的位置

// 由于需要认证,故需要设置调用的SOAP头信息。

Name headerName = new PrefixedQName( new QName("发布的wsdl里的targetNamespace里的url", "string_itemName") );

orgapacheaxismessageSOAPHeaderElement header = new SOAPHeaderElement(headerName);

headeraddTextNode( "blablabla" );

calladdHeader(header);

// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("发布的wsdl里的targetNamespace里的url", "SoapHeader");

// soapHeaderElementsetNamespaceURI("发布的wsdl里的targetNamespace里的url");

// try

// {

// soapHeaderElementaddChildElement("string_itemName")setValue("blablabla");

// }

// catch (SOAPException e)

// {

// eprintStackTrace();

// }

// calladdHeader(soapHeaderElement);

//调用Web Service的方法

orgapacheaxisdescriptionOperationDesc oper;

orgapacheaxisdescriptionParameterDesc param;

oper = new orgapacheaxisdescriptionOperationDesc();

opersetName("opName");

param = new orgapacheaxisdescriptionParameterDesc(new javaxxmlnamespaceQName("", "arg0"), orgapacheaxisdescriptionParameterDescIN, new javaxxmlnamespaceQName(", "string"), javalangStringclass, false, false);

paramsetOmittable(true);

operaddParameter(param);

param = new orgapacheaxisdescriptionParameterDesc(new javaxxmlnamespaceQName("", "arg1"), orgapacheaxisdescriptionParameterDescIN, new javaxxmlnamespaceQName(", "string"), javalangStringclass, false, false);

paramsetOmittable(true);

operaddParameter(param);

param = new orgapacheaxisdescriptionParameterDesc(new javaxxmlnamespaceQName("", "arg2"), orgapacheaxisdescriptionParameterDescIN, new javaxxmlnamespaceQName(", "string"), javalangStringclass, false, false);

paramsetOmittable(true);

operaddParameter(param);

opersetReturnType(new javaxxmlnamespaceQName(", "string"));

opersetReturnClass(javalangStringclass);

opersetReturnQName(new javaxxmlnamespaceQName("", "return"));

opersetStyle(orgapacheaxisconstantsStyleWRAPPED);

opersetUse(orgapacheaxisconstantsUseLITERAL);

operaddFault(new orgapacheaxisdescriptionFaultDesc(

new javaxxmlnamespaceQName("发布的wsdl里的targetNamespace里的url", "Exception"),

"Exception",

new javaxxmlnamespaceQName("发布的wsdl里的targetNamespace里的url", "Exception"),

true

));

callsetOperation( oper );

callsetOperationName(new javaxxmlnamespaceQName("发布的wsdl里的targetNamespace里的url", "opName"));

//调用Web Service,传入参数

String res = ( String ) callinvoke( new Object[]("arg0","arg1"));

Systemoutprintln("===============");

return res;

}

/

@param args

/

public static void main(String[] args) {

try {

Systemoutprintln(getResult());

} catch (MalformedURLException e) {

eprintStackTrace();

} catch (RemoteException e) {

eprintStackTrace();

} catch (ServiceException e) {

eprintStackTrace();

} catch (SOAPException e) {

eprintStackTrace();

}

}

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » C语言如何用FtpPutFile()函数上传文件到Ftp服务器!下载用FtpGetFile()可以!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情