투케이2K

127. (TWOK/LOGIC) [Ios] NWConnection 사용해 FTP 연결 및 USER , PASS 사용자 인증 수행 로직 본문

투케이2K 로직정리

127. (TWOK/LOGIC) [Ios] NWConnection 사용해 FTP 연결 및 USER , PASS 사용자 인증 수행 로직

투케이2K 2024. 12. 3. 19:37

[로직 정리]

정리 로직 : Ios / 아이폰

상태 : [Ios] NWConnection 사용해 FTP 연결 및 USER , PASS 사용자 인증 수행 로직

 

[설 명]

 

// --------------------------------------------------------------------------------------
[사전) 설정 및 정보 확인 사항]
// --------------------------------------------------------------------------------------

- FTP 연결 및 파일 송수신을 하기 위한 도메인 접속 정보 확인 필요


- 사전) 위치 권한 설정 필요


- NWConnection 설명 :

  >> NWConnection 는 로컬 엔드포인트와 원격 엔드포인트 간의 양방향 데이터 연결 (TCP , UDP) 을 수행할 수 있습니다

  >> NWConnection 를 사용하기 위해서는 import Network 패키지 호출 정의가 필요합니다

  >> NWParameters 설정 가능 옵션 : 

   - tls
   - tcp
   - dtls
   - udp
   - quic
   - quicDatagram

  >> 참고 사이트 : https://developer.apple.com/documentation/network/nwconnection

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[로직 설명]
// --------------------------------------------------------------------------------------

1. 애플리케이션 실행 및 FTP 통신을 수행할 수 있는 화면 진입


2. FTP 통신 수행 클래스 화면에서 lazy 선언으로 NWProtocolTCP.Options , NWParameters 옵션 설정 수행 

  >> TimeOut 설정으로 연결 대기 제한 시간 설정


3. FTP 접송 도메인 정보 사용해 NWConnection 객체 초기화 URL 지정 및 설정한 옵션 값 지정 수행 >> 연결 요청 실시

  >> nwConnection?.start(queue: .global())


4. 연결 완료 상태를 감지하기 위한 stateUpdateHandler 이벤트 감지 핸들러 등록 및 ready 준비 완료 상태 확인


5. stateUpdateHandler 핸들러에서 준비 완료 상태가 된 경우 FTP receiveData 실시간 메시지 수신 확인 이벤트 등록


6. receiveData 실시간 메시지 수신 확인 이벤트에서 [220 FTP Server ready.] 응답이 내려온 경우 사용자 접속 인증을 수행하기 위한 USER 커맨드 send 요청 수행

  >> 커맨드 예시 : let commandWithCRLF = "USER \(C_FTP_NWConnection_Client_Module.FTP_USER_NAME)" + "\r\n"


7. USER 커맨드 send 요청 완료 후 receiveData 실시간 메시지 수신 확인 이벤트에서 [331 사용자의 암호를 입력 하십시오.] 응답이 내려온 경우 PASS 커맨드 send 요청 수행

  >> 커맨드 예시 : let commandWithCRLF = "PASS \(C_FTP_NWConnection_Client_Module.FTP_USER_PW)" + "\r\n"


8. receiveData 실시간 메시지 수신 확인 이벤트에서 [230 사용자 로그인] 응답이 내려온 경우 최종 FTP 접속 및 사용자 연결 완료 Flag 값 True 변경 수행

  >> receiveData 이벤트에서 [530 로그인에 실패했습니다.] 메시지가 내려온 경우 FTP 접속 및 사용자 연결 완료 Flag 값 False 변경 수행 후 FTP 접속 실패 콜백 반환

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[Ios - NWConnection 사용해 TCP IP 소켓 통신 NWProtocolTCP.Options 옵션 설정 방법]

https://blog.naver.com/kkh0977/223672535940


[Ios - NWConnection 사용해 TCP IP 소켓 통신 연결 후 stateUpdateHandler 연결 상태 확인 방법]

https://blog.naver.com/kkh0977/223672601987


[Ios - NWConnection 사용해 FTP 연결 및 USER , PASS 사용자 인증 수행 방법]

https://blog.naver.com/kkh0977/223678397914

// --------------------------------------------------------------------------------------

 

반응형
Comments