Programming Tutorials

(追記) (追記ここまで)

Making an FTP Connection in iPhone Application

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



(追記) (追記ここまで)


Add Comment

JavaScript must be enabled for certain features to work
* Required information
1000

Comments

No comments yet. Be the first!
(追記) (追記ここまで)
(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /