FTP client 를 구현중에 있습니다.
정확히는 server와 client두가지다 구현중에 있었고요
server는 잘돌아가는데 client가 문제입니다.
제가 구현한 server에서는 문제가 없었는데 proftpd, 알ftp, 다ftp 에 접속을 하면 문제가 생기더군요
userlogin를 시작하고
void user()
{
write(sock,"USER a\r\n",strlen("USER a\r\n")+1);
str_len=read(sock, read_msg, sizeof(read_msg)+1);
}
void passwd()
{
write(sock,"PASS a\r\n",strlen("PASS a\r\n")+1);
str_len=read(sock, read_msg, sizeof(read_msg)+1);
}
요약하여 작성하였고 "PASS a\r\n" 이부분은 배열로 모두 정의 되어있는 구문입니다. strcat를 사용하여 문자열을 만들었습니다
로긴을 시작하여 username 을 입력하고 passwd를 입력하면
root@build:/home/client/client # ./gcli 127.0.0.1 20
[user] 220 ProFTPD 1.3.2rc1 Server (ProFTPD Default Installation) [127.0.0.1]
User ID > a
4.handler-----------do_user-
request USER a
User = 331 Password required for a
pass : a
4.handler-----------do_pass-
pass [b]500 Invalid command: try being more creative
볼트체가 서버에서 받아드린 구문입니다 현재 서버는 proftp입니다.
정확한 구문을 날렸는데 이렇게 답변을 해주니 정말 모르겠습니다 proftp를 다 분석하기는 힘들고요..
그리고 알ftp 다ftp도 모두 [ 500 ' ] 이라는 구문을 날려주는데 어찌해야하나요??/
댓글 달기