728x90
Network.framework
전송 및 보안 프로토콜을 사용하여 데이터를 보내고 받기 위한 네트워크 연결을 만든다.
- 사용자 지정 애플리케이션 프로토콜을 위해 TLS, TCP 및 UDP와 같은 프로토콜에 직접 액세스해야 할 때 이 프레임워크를 사용한다.
- HTTP 및 URL 기반 리소스를 로드하기 위해 이 프레임워크를 기반으로 구축된 URLSession을 계속 사용한다.
NWEndPoint
네트워크 연결에서 로컬 혹은 리모트 엔드 포인트
- enum NWEndpoint: Endpoint Types
- case hostPort(host: NWEndpoint.Host, port: NWEndpoint.Port)
- Host와 Port를 입력해 주는 EndPoint
- case service(name: String, type: String, domain: String, interface: NWInterface?)
- Bonjour service를 나타내는 EndPoint
- case url(URL)
- URL로 나타내어지는 EndPoint
- case unix(path: String)
- UNIX 도메인 경로로 나타내어지는 EndPoint
- case hostPort(host: NWEndpoint.Host, port: NWEndpoint.Port)
NWParameters
final class NWParameters
연결에 쓰이는 프로토콜과 데이터 sending의 옵션들, 네트워크 경로 제약 조건들을 저장하고 있는 객체
NWConnection
final class NWConnection
로컬 EndPoint와 원격 EndPoint의 양방향 데이터 연결
- init(host: NWEndpoint.Host, port: NWEndpoint.Port, using: NWParameters)
- host와 port를 사용해 새로운 연결을 초기화한다.
- start(queue: DispatchQueue)
- 연결 수립을 시작하고 모든 연결 이벤트들을 전달할 queue를 설정
- func cancel()
- 연결을 취소하고 설정된 모든 네트워크 프로토콜을 정상적으로 연결 해제
- func send(content: Data?, contentContext: NWConnection.ContentContext, isComplete: Bool, completion: NWConnection.SendCompletion)
- 연결에 대한 데이터를 전송한다.
- func send<Content>(content: Content?, contentContext: NWConnection.ContentContext, isComplete: Bool, completion: NWConnection.SendCompletion)
- 사용자 지정 데이터 유형을 사용하여 연결에 대한 데이터를 전송한다.
- func receive(minimumIncompleteLength: Int, maximumLength: Int, completion: (Data?, NWConnection.ContentContext?, Bool, NWError?) -> Void)
- 핸들러가 한 번에 얼마나 많은 바이트를 받을 수 있는지를 나타내는 범위와 함께 단일 수신 완료 핸들러를 예약
- func receiveMessage(completion: (Data?, NWConnection.ContentContext?, Bool, NWError?) -> Void)
- 바이트 범위와 달리 전체 메시지에 대한 단일 수신 완료 핸들러를 예약
- func batch(() -> Void)
- 전송 및 수신 호출이 성능을 개선하기 위해 일괄 처리되는 블록을 정의
NWListener
들어오는 네트워크 연결을 수신하는 데 사용하는 객체
- func start(queue: DispatchQueue)
- listen을 등록하고, 모든 리스너 이벤트가 전달되는 대기열 설정
- var stateUpdateHandler: (NWListener.State) -> Void)?
- 리스너 상태 업데이트를 받는 핸들러
- var newConnectionHandler: (NWConnection) -> Void)?
- 인바운드 연결을 받는 핸들러
참고
728x90
'Swift' 카테고리의 다른 글
Swift: Model data (0) | 2024.08.22 |
---|---|
Swift: Attributes (0) | 2024.08.22 |
Swift: Result Builder (0) | 2024.08.13 |
Swift: 이벤트 큐, 이벤트 핸들러 (0) | 2024.08.12 |
Swift: Async, Await, Thread (0) | 2024.08.12 |