By: Jonathan Zdziarski in iPhone Tutorials on 2010年09月06日 [フレーム]
The CFFTP API is similar to the CFHTTP API, and relies on read streams to transmit FTP data. To create an FTP request, use the CFReadStreamCreateWithFTPURL function, as shown below. This will create the initial read stream to the FTP server:
CFStringRef url = CFSTR("ftp://ftp.somedomain.com/file.txt");
CFURLRef requestURL = CFURLCreateWithString(kCFAllocatorDefault, url, NULL);
CFReadStreamRef readStream = CFReadStreamCreateWithFTPURL(
kCFAllocatorDefault, requestURL);
Once you have created the read stream, you can tie a callback function to it so that a read function will be called when data is ready:
CFReadStreamSetClient( readStream, kCFtreamEventHasBytesAvailable, readCallBack, NULL);
The callback function will be called whenever data is available, and will be able to read the data off the stream:
void readCallBack(
CFReadStreamRef stream,
CFStreamEventType eventType,
void *clientCallBackInfo)
{
char buffer[1024];
CFIndex bytes_recvd;
int recv_len = 0;
while(recv_len < total_size && recv_len < sizeof(buffer)) { bytes_recvd = CFReadStreamRead(stream, buffer + recv_len, sizeof(buffer) - recv_len); /* Write bytes to output or file here */ } recv_len += bytes_recvd; }
You can now schedule the request in your main program's run loop, As the read stream is presented with data, your read callback will be invoked and will continue to perform on the data until the connection is closed or until the file has been completed:
CFReadStreamScheduleWithRunLoop(readStream, CFRunLoopGetCurrent(), kCFRunLoopCommonModes);
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Most Viewed Articles (in iPhone )
Directory Structure for iPhone Applications
Making an HTTP Connection in iPhone Application
Making an FTP Connection in iPhone Application
Multitasking in iPhone 4 - iOS 4
SOLVED: tensorflow/contrib/lite/tools/mutable_op_resolver.h can not be found
Latest Articles (in iPhone)
© 2023 Java-samples.com
Tutorial Archive: Data Science React Native Android AJAX ASP.net C C++ C# Cocoa Cloud Computing EJB Errors Java Certification Interview iPhone Javascript JSF JSP Java Beans J2ME JDBC Linux Mac OS X MySQL Perl PHP Python Ruby SAP VB.net EJB Struts Trends WebServices XML Office 365 Hibernate
Latest Tutorials on: Data Science React Native Android AJAX ASP.net C Cocoa C++ C# EJB Errors Java Certification Interview iPhone Javascript JSF JSP Java Beans J2ME JDBC Linux Mac OS X MySQL Perl PHP Python Ruby SAP VB.net EJB Struts Cloud Computing WebServices XML Office 365 Hibernate