투케이2K

605. (ios/swift5) [간단 소스] NWConnection.State 간단 설명 및 사용 옵션 정리 본문

IOS

605. (ios/swift5) [간단 소스] NWConnection.State 간단 설명 및 사용 옵션 정리

투케이2K 2024. 12. 4. 19:56

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Swift


- 개발 툴 : Xcode


- 사전) NWConnection 설명 :

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

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

  >> NWParameters 설정 가능 옵션 : 

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

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

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






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. NWConnection.State 은 NWConnection start 수행 후 데이터를 보내고 받을 수 있는지 여부를 나타내는 상태입니다


2. NWConnection.State 사용 가능 지원 범위 : 

  >> iOS 12.0 이상
  >> 아이패드OS 12.0+
  >> 맥 카탈리스트 12.0+
  >> 맥OS 10.14+
  >> tvOS 12.0+
  >> 비전OS 1.0+
  >> 워치OS 5.0+


3. NWConnection.State 상태 값 종류 : 

  >> case setup : 연결은 초기화되었지만 시작되지 않았습니다.
  >> case waiting(NWError) : 연결이 네트워크 경로 변경을 기다리고 있습니다.
  >> case preparing : 연결이 설정되고 있습니다.
  >> case ready : 연결이 설정되었고 데이터를 보내고 받을 준비가 되었습니다.
  >> case failed(NWError) : 연결이 끊어졌거나 오류가 발생했습니다.
  >> case cancelled : 연결이 취소되었습니다.


4. NWConnection.State 사용 방법 예시 코드 : 

    // ---------------------------------------------
    // [NWConnection 객체 생성]
    // ---------------------------------------------
    let nwConnection = NWConnection(to: .url(URL(string: "https:// ... ")!), using: self.parames)


    // ---------------------------------------------
    // [NWConnection : stateUpdateHandler 상태 확인 핸들러 준비]
    // ---------------------------------------------
    nwConnection?.stateUpdateHandler = { state in
        switch state {
        case .ready:
            var CONNECT_LOG = "[Success] : Connection Ready State"
            
        case .failed(let error):
            var CONNECT_LOG = "[Fail] : Connection Fail State"
            return
            
        case .cancelled:
            var CONNECT_LOG = "[Cancel] : Connection Cancel State"
            return
            
        default:
            break
        }
    }


    // ---------------------------------------------
    // [연결 시작]
    // ---------------------------------------------
    nwConnection?.start(queue: .global())

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






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

https://developer.apple.com/documentation/network/nwconnection

https://developer.apple.com/documentation/network/nwconnection/state-swift.enum

// --------------------------------------------------------------------------------------
​

 

반응형
Comments