FTP 파일전송을 프로그램내에서 구현가능할까요~?

toughguy의 이미지

안녕하세요~
오늘 이리 저리 궁금한것이 많네요^^;;

프로그램 내에서 파일 전송을 하고싶은데,
socket 을 쓰지않고 FTP등을 통해서 전송이 가능할까요?

즉,
FILE * op = fopen("./test.txt","r");

이와같이 받은 FILE * 를 Socket을 쓰지 않고 특정 서버에 전송하고 싶습니다.

지금 당장 생각나는것은, pipe를 통해 popen("ftp 1.1.1.1 21 text.txt" ..)
이런식으로 해되 될 것 같지만,

만약 내가 전송하려는 FILE이 local에 있는 FILE이 아니라
어디선가로 부터 FILE * 의 형태로 받아와 local에 떨구지 않고
Relay식으로 다른 서버로 전송해야 한다면, 문제가 있겠네요 ㅠ_ㅠ

도와주세요~~

feanor의 이미지

ftp를 popen해서 "put -"를 보내고 전달받은 FILE *에서 읽어서 파이프에 쓰면 될 것 같은데요.

그런데 소켓을 쓰지 않아야 하는 이유라도 있나요?