ftp 를 구현중인데 문제점이 있습니다.
먼저 개발환경 및 구현상황을 설명드리겠습니다.
최종목표
보드에서 ui + ftp client구현
콘솔에서 테스트 코드 클라이언트는 다짰습니다.
콘솔 테스트에서도 무난히 돌아갑니다.
그런데 QT를 이용해서 client를 같이 넣으면 문제가 생깁니다.
많은 클라이언트 명령어중에 지금현재는 dir은 되는데 get명령어가 안먹힙니다/
둘 명령어의 코드는 매우 유사한데 말이지요
간단히 설명드리면 Request구문으로 설명드리겠습니다
코드를 작성하신분은 아시겠지만
dir을 클라이언트가 보낼려면
ftp> dir
server <- 1. PORT 보냄
server -> 1. 200 Port command successful
server <- 2. LIST 보냄
server -> 2. 150 opening data channel for directory list.
를 받고 뒤에 while문을 이용해서 dir에 대한 서버의 디렉토리 정보를 받습니다.
똑같이 get명령어를 살펴보면
ftp> get 3.exe
server <- 1. PORT 보냄
server -> 1. 200 Port command successful
server <- 2. get 3.exe 보냄
server <- 2. 150 Opening data channel for file transfer.
226 Transfer OK
이것이 정상입니다.
하지만 ui+client코드는
ftp> get 3.exe
server <- 1. PORT 보냄
server -> 1. 200 Port command successful
server <- 2. get 3.exe 보냄
server <- 2. 150 Opening data channel for file transfer.
426 Connection closed; transger aborted.
프로토콜 설정이라던지 다른부분은 아무런 문제가 되질 않고
먼저 테스트 코드에서는 아무런 문제가 되질 않았는데 왜 QT+clientcode에서는 문제시 되는지 모르겠습니다.
참고로 ui 와 client 는 pthread를 이용해서 동기화 하였습니다
댓글 달기