2010-01-19 4 views
0

네트워크를 통해 C++에서 파일을 보내려고합니다 (채팅 프로그램 용) 어떻게해야합니까?C++로 파일 전송

+1

참조 http://stackoverflow.com/questions/2014033/send-file-in-socket-programing-in-linux-with-c-c –

답변

4

http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/examples.html을 살펴보십시오. Iostreams 예제는 당신에게 첫 걸음을 내딛어 줄 것입니다. Asio는 부스트 프로젝트의 휴대용 네트워크 라이브러리입니다. Boost는 현재 사용 가능한 대부분의 플랫폼에서 사용할 수 있습니다.

파일을 스트리밍하여 TCP 스트림으로 스트리밍 할 수 있습니다.

0

둘 사이의 직접 연결을 열어 콘텐츠를 보낼 수 있습니다. 이를 위해 한쪽은 클라이언트이고 다른 쪽은 보낸 사람이됩니다.

간단한 구현 here을 볼 수 있습니다.

0

당신은 소켓 프로그래밍이라는 것을 할 것입니다. 모든 세부 사항 및 문제 해결 방법은 Beej's Guide to Networking을 참조하십시오.

1

더 강력한 응용 프로그램을 위해 오픈 소스 FTP 라이브러리를 사용하십시오. this 스레드를 C++ 기반 오픈 소스 라이브러리 용으로 읽으십시오.

+0

더 이상 동의 할 수 없습니다. FTP는 고유 한 문제가 많으며 (특히 최근에는 모든 NAT를 사용함) 새로운 응용 프로그램에서는 반드시 피해야합니다. – avakar

+0

나를 업데이트 해 주셔서 감사합니다. – Satbir

1

매우 쉽습니다. TCP/IP 소켓을 설정 한 다음 파일을 패킷으로 분할하여 전송하십시오. TCP는 신뢰할 수 있으므로 모든 패킷이 올바른 순서로 도착하고 재전송 등을 처리합니다.

UDP와 같이 신뢰할 수없는 전송을 사용해야하는 경우 stop and wait (가장 쉬운 방법) go-back-n 또는 selective repeat (다소 힘들지만 훨씬 효율적입니다).