nl::Inet::TCPEndPoint

#include <src/inet/TCPEndPoint.h>

이 클래스의 객체는 TCP 전송 엔드포인트를 나타냅니다.

요약

Nest Inet 레이어는 시스템이 적절하게 구성되므로 TCP 전송 엔드포인트 (Linux 및 BSD 파생 시스템의 SOCK_STREAM 소켓) 또는 LwIP TCP 프로토콜 제어 블록과 상호작용하는 메서드를 캡슐화합니다.

상속

상속 대상: nl::Inet::EndPointBasis

공개 유형

@10{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Connecting = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_ReceiveShutdown = 6,
  kState_Closing = 7,
  kState_Closed = 8
}
enum
기본 엔드포인트의 기본 동적 상태입니다.
OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
연결 수락 오류 이벤트 처리 함수의 유형입니다.
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
연결 설정 이벤트 처리 함수의 유형입니다.
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
연결 설정 이벤트 처리 함수의 유형입니다.
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) typedef
void(*
연결 수신 이벤트 처리 함수의 유형입니다.
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) typedef
void(*
데이터 수신 이벤트 처리 함수의 유형입니다.
OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len) typedef
void(*
데이터 전송 이벤트 처리 함수의 유형입니다.
OnPeerCloseFunct)(TCPEndPoint *endPoint) typedef
void(*
절반 닫기 리셉션 이벤트 처리 함수의 유형입니다.
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) typedef
void(*
TCP SendIdle의 유형이 신호 처리 함수를 변경했습니다.

공개 속성

OnAcceptError
엔드포인트의 연결 수락 이벤트 처리 함수 대리자입니다.
OnConnectComplete
엔드포인트의 연결 설정 이벤트 처리 함수 대리자입니다.
OnConnectionClosed
엔드포인트의 닫기 이벤트 처리 함수 대리자입니다.
OnConnectionReceived
엔드포인트의 연결 수신 이벤트 처리 함수 대리자입니다.
OnDataReceived
엔드포인트의 메시지 텍스트 수신 이벤트 처리 함수 대리자입니다.
OnDataSent
엔드포인트의 메시지 텍스트 전송 이벤트 처리 함수 대리자입니다.
OnPeerClose
엔드포인트의 절반 닫기 수신 이벤트 처리 함수 대리자입니다.
OnTCPSendIdleChanged
TCP 연결 전송 채널의 유휴 상태가 변경될 때 신호를 보내는 엔드포인트의 이벤트 처리 함수 대리자입니다.
ReceiveEnabled
bool
애플리케이션이 데이터를 수신하고 있는지 여부를 나타내는 제어 스위치.
State
enum nl::Inet::TCPEndPoint::@10
기본 엔드포인트의 기본 동적 상태입니다.

공개 함수

Abort(void)
void
엔드포인트를 임의로 닫습니다. 즉, RST 패킷을 전송합니다.
AckReceive(uint16_t len)
메시지 텍스트 수신을 확인합니다.
Bind(IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
엔드포인트를 인터페이스 IP 주소에 바인딩합니다.
Close(void)
TCP 전체 닫기를 시작합니다. 즉, 전송과 수신을 모두 완료합니다.
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
TCP 연결을 시작합니다.
DisableKeepAlive(void)
TCP 'keep-alive' 옵션을 사용 중지합니다.
DisableReceive(void)
void
수신을 중지합니다.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
TCP '연결 유지' 옵션을 사용 설정합니다.
EnableNoDelay(void)
EnableNoDelay.
EnableReceive(void)
void
리셉션 사용
Free(void)
void
오류를 무시하고 TCP 완전히 닫기를 시작하거나 계속합니다.
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
로컬 엔드포인트의 IP 주소 및 TCP 포트를 추출합니다.
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
원격 엔드포인트의 IP 주소 및 TCP 포트를 추출합니다.
IsConnected(void) const
bool
TCP 연결이 설정되었는지 추출합니다.
Listen(uint16_t backlog)
TCP 메시지를 수신할 엔드포인트를 준비합니다.
LogId(void)
uint16_t
엔드포인트의 식별자를 가져옵니다.
MarkActive(void)
void
활동 알림, 즉 유휴 타이머를 재설정합니다.
PendingReceiveLength(void)
uint32_t
미확인 수신 데이터의 길이를 추출합니다.
PendingSendLength(void)
uint32_t
첫 번째 전송을 기다리는 데이터의 길이를 추출합니다.
PutBackReceivedData(Weave::System::PacketBuffer *data)
메시지 텍스트를 수신 대기열의 헤드로 다시 푸시합니다.
Send(Weave::System::PacketBuffer *data, bool push)
TCP 연결 시 메시지 텍스트를 전송합니다.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Connect가 성공하거나 오류를 반환할 시간 제한을 설정합니다.
SetUserTimeout(uint32_t userTimeoutMillis)
TCP TCP_USER_TIMEOUT 소켓 옵션을 설정합니다.
Shutdown(void)
TCP 절반 닫기를 시작합니다. 즉, 전송을 완료합니다.

공개 유형

10시

 @10

기본 엔드포인트의 기본 동적 상태입니다.

객체는 '준비' 상태로 초기화되고 TCP 전송 상태 머신의 상태 단순화에 해당하는 후속 상태로 진행됩니다.

참고: kBasisState_Closed 상태 열거는 이전 바이너리 호환성을 위해 kState_Ready에 매핑됩니다. 기존 kState_Closed는 이전에 kState_ReadykState_Closed 상태에 있었던 '아직 열리지 않음'과 '이전에 영업을 종료함' 간의 차이를 별도로 식별하기 위해 존재합니다.

속성
kState_Bound

엔드포인트가 바운드이지만 수신 대기하지 않습니다.

kState_Closed

엔드포인트가 닫혔으며, 출시할 준비가 되었습니다.

kState_Closing

엔드포인트가 양방향으로 닫힙니다.

kState_Connected

엔드포인트가 연결되었으며 tx/rx에 사용할 수 있습니다.

kState_Connecting

엔드포인트에서 연결을 시도하고 있습니다.

kState_Listening

연결을 수신하는 엔드포인트

kState_Ready

엔드포인트가 초기화되었지만 바인딩되지 않았습니다.

kState_ReceiveShutdown

엔드포인트가 절반 종료에 응답했습니다.

kState_SendShutdown

엔드포인트에서 절반 종료가 시작되었습니다.

OnAcceptErrorFunct

void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)

연결 수락 오류 이벤트 처리 함수의 유형입니다.

이 유형의 함수를 OnAcceptError 위임 멤버에 제공하여 endPoint에서 연결 수락 오류 이벤트를 처리합니다. err 인수는 오류 유형에 관한 구체적인 세부정보를 제공합니다.

세부정보
매개변수
[in] endPoint
이벤트와 연결된 TCP 엔드포인트입니다.
[in] err
오류가 발생한 이유입니다.

OnConnectCompleteFunct

void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)

연결 설정 이벤트 처리 함수의 유형입니다.

이 유형의 함수를 OnConnectComplete 위임 멤버에 제공하여 endPoint에서 연결 설정 이벤트를 처리합니다. err 인수는 성공적인 연결과 실패를 구분합니다.

세부정보
매개변수
[in] endPoint
이벤트와 연결된 TCP 엔드포인트입니다.
[in] err
성공하면 INET_NO_ERROR이고 성공하지 못하면 다른 코드입니다.

OnConnectionClosedFunct

void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)

연결 설정 이벤트 처리 함수의 유형입니다.

이 유형의 함수를 OnConnectionClosed 위임 멤버에 제공하여 endPoint에서 연결 종료 이벤트를 처리합니다. err 인수는 성공적인 종료와 실패를 구분합니다.

세부정보
매개변수
[in] endPoint
이벤트와 연결된 TCP 엔드포인트입니다.
[in] err
성공하면 INET_NO_ERROR이고 성공하지 못하면 다른 코드입니다.

OnConnectionReceivedFunct

void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)

연결 수신 이벤트 처리 함수의 유형입니다.

이 유형의 함수를 OnConnectionReceived 위임 멤버에 제공하여 listeningEndPoint에서 연결 수신 이벤트를 처리합니다. 새로 수신된 엔드포인트 conEndPoint는 IP 주소 peerAddr 및 TCP 포트 peerPort에 있습니다.

세부정보
매개변수
[in] listeningEndPoint
수신 대기 TCP 엔드포인트
[in] conEndPoint
새로 수신된 TCP 엔드포인트입니다.
[in] peerAddr
원격 피어의 IP 주소입니다.
[in] peerPort
원격 피어의 TCP 포트입니다.

OnDataReceivedFunct

void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)

데이터 수신 이벤트 처리 함수의 유형입니다.

이 유형의 함수를 OnDataReceived 위임 멤버에 제공하여 endPoint의 데이터 수신 이벤트를 처리합니다. 여기서 data는 수신된 메시지 텍스트입니다.

세부정보
매개변수
[in] endPoint
이벤트와 연결된 TCP 엔드포인트입니다.
[in] data
수신된 데이터

데이터 수신 이벤트 핸들러는 AckReceive 메서드로 처리된 데이터를 확인해야 합니다. PutBackReceivedData를 대신 사용하지 않는 한 데이터 버퍼의 Free 메서드도 호출해야 합니다.

OnDataSentFunct

void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)

데이터 전송 이벤트 처리 함수의 유형입니다.

이 유형의 함수를 OnDataSent 위임 멤버에 제공하여 endPoint의 데이터 전송 이벤트를 처리합니다. 여기서 len는 기본 네트워크 스택에서 전송할 수 있는 TCP 전송 창에 추가된 메시지 텍스트의 길이입니다.

세부정보
매개변수
[in] endPoint
이벤트와 연결된 TCP 엔드포인트입니다.
[in] len
전송 창에 추가된 바이트 수입니다.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

절반 닫기 리셉션 이벤트 처리 함수의 유형입니다.

이 유형의 함수를 OnPeerClose 위임 멤버에 제공하여 endPoint에서 연결 종료 이벤트를 처리합니다.

세부정보
매개변수
[in] endPoint
이벤트와 연결된 TCP 엔드포인트입니다.

OnTCPSendIdleChangedFunct

void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)

TCP SendIdle의 유형이 신호 처리 함수를 변경했습니다.

이 유형의 함수를 OnTCPSendIdleChanged 위임 멤버에 제공하여 TCPEndPoint의 전송 채널이 유휴 상태와 유휴 상태가 아님 간에 상태를 변경하는 이벤트를 처리합니다.

세부정보
매개변수
[in] endPoint
이벤트와 연결된 TCP 엔드포인트입니다.
[in] isIdle
TCP 엔드포인트의 전송 채널이 유휴 상태이면 true이고, 그렇지 않으면 false입니다.

공개 속성

OnAcceptError

OnAcceptErrorFunct OnAcceptError

엔드포인트의 연결 수락 이벤트 처리 함수 대리자입니다.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

엔드포인트의 연결 설정 이벤트 처리 함수 대리자입니다.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

엔드포인트의 닫기 이벤트 처리 함수 대리자입니다.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

엔드포인트의 연결 수신 이벤트 처리 함수 대리자입니다.

OnDataReceived

OnDataReceivedFunct OnDataReceived

엔드포인트의 메시지 텍스트 수신 이벤트 처리 함수 대리자입니다.

OnDataSent

OnDataSentFunct OnDataSent

엔드포인트의 메시지 텍스트 전송 이벤트 처리 함수 대리자입니다.

OnPeerClose

OnPeerCloseFunct OnPeerClose

엔드포인트의 절반 닫기 수신 이벤트 처리 함수 대리자입니다.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

TCP 연결 전송 채널의 유휴 상태가 변경될 때 신호를 보내는 엔드포인트의 이벤트 처리 함수 대리자입니다.

상위 레이어에서 이를 활용하여 전송된 데이터가 동종 기기에 안정적으로 전달되었는지에 따라 적절한 조치를 취합니다.

ReceiveEnabled

bool ReceiveEnabled

애플리케이션이 데이터를 수신하고 있는지 여부를 나타내는 제어 스위치.

상태

enum nl::Inet::TCPEndPoint::@10 State

기본 엔드포인트의 기본 동적 상태입니다.

객체는 '준비' 상태로 초기화되고 TCP 전송 상태 머신의 상태 단순화에 해당하는 후속 상태로 진행됩니다.

참고: kBasisState_Closed 상태 열거는 이전 바이너리 호환성을 위해 kState_Ready에 매핑됩니다. 기존 kState_Closed는 이전에 kState_ReadykState_Closed 상태에 있었던 '아직 열리지 않음'과 '이전에 영업을 종료함' 간의 차이를 별도로 식별하기 위해 존재합니다.

공개 함수

취소

void Abort(
  void
)

엔드포인트를 임의로 닫습니다. 즉, RST 패킷을 전송합니다.

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

메시지 텍스트 수신을 확인합니다.

수신된 데이터의 일부 또는 전부가 수신되었음을 확인하려면 이 방법을 사용하세요. len이 미확인된 총 수신 데이터보다 큰 경우 운영 시맨틱스가 정의되지 않습니다.

세부정보
매개변수
[in] len
확인할 바이트 수입니다.
반환 값
INET_NO_ERROR
성공: 리셉션이 확인됨.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.
INET_ERROR_CONNECTION_ABORTED
TCP 연결이 더 이상 열려 있지 않습니다.

결합

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  uint16_t port,
  bool reuseAddr
)

엔드포인트를 인터페이스 IP 주소에 바인딩합니다.

엔드포인트를 지정된 네트워크 인터페이스 IP 주소에 바인딩합니다.

세부정보
매개변수
[in] addrType
IP 주소의 프로토콜 버전
[in] addr
IP 주소 (인터페이스 주소여야 함)
[in] port
TCP 포트
[in] reuseAddr
다른 엔드포인트와 바인딩을 공유하는 옵션
반환 값
INET_NO_ERROR
성공: 주소에 바인딩된 엔드포인트
INET_ERROR_INCORRECT_STATE
이전에 바인딩된 엔드포인트
INET_NO_MEMORY
엔드포인트를 위한 메모리 부족
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType이(가) IPVer과(와) 일치하지 않습니다.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType이(가) kIPAddressType_Any이거나 addr의 유형이 addrType과(와) 같지 않습니다.
other
다른 시스템 또는 플랫폼 오류

LwIP에서는 이미 LwIP 스택 잠금이 설정된 상태에서는 이 메서드를 호출하면 안 됩니다.

닫기

INET_ERROR Close(
  void
)

TCP 전체 닫기를 시작합니다. 즉, 전송과 수신을 모두 완료합니다.

세부정보
반환 값
INET_NO_ERROR
성공: 주소와 포트가 추출되었습니다.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.
other
다른 시스템 또는 플랫폼 오류

연결

INET_ERROR Connect(
  IPAddress addr,
  uint16_t port,
  InterfaceId intf
)

TCP 연결을 시작합니다.

 If possible, then this method initiates a TCP connection to the
 destination \c addr (with \c intf used as the scope
 identifier for IPv6 link-local destinations) and \c port.

세부정보
매개변수
[in] addr
대상 IP 주소
[in] port
목적지 TCP 포트
[in] intf
네트워크 인터페이스 표시기(선택사항)
반환 값
INET_NO_ERROR
성공: msg가 전송 대기열에 추가됩니다.
INET_ERROR_NOT_IMPLEMENTED
시스템 구현이 완료되지 않았습니다.
INET_ERROR_WRONG_ADDRESS_TYPE
대상 주소와 바인드된 인터페이스 주소에 일치하는 프로토콜 버전 또는 주소 유형이 없거나, 대상 주소가 IPv6 링크-로컬 주소이고 intf이 지정되지 않은 경우
other
다른 시스템 또는 플랫폼 오류

DisableKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

TCP 'keep-alive' 옵션을 사용 중지합니다.

TCPEndPoint::DisableKeepAlive를 사용합니다.

연결된 TCP 연결에서 TCP 연결 유지 프로브를 사용 중지합니다.

세부정보
반환 값
INET_NO_ERROR
성공: 주소와 포트가 추출되었습니다.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.
INET_ERROR_CONNECTION_ABORTED
TCP 연결이 더 이상 열려 있지 않습니다.
INET_ERROR_NOT_IMPLEMENTED
시스템 구현이 완료되지 않았습니다.
other
다른 시스템 또는 플랫폼 오류

참고: 이 메서드는 엔드포인트가 연결된 상태 중 하나일 때만 호출할 수 있습니다. 엔드포인트에서 연결 유지가 사용 설정되지 않은 경우 이 메서드는 아무 작업도 하지 않습니다.

DisableReceive

void DisableReceive(
  void
)

수신을 중지합니다.

모든 이벤트 핸들러를 사용 중지합니다. 수신을 사용 중지하는 엔드포인트로 전송된 데이터는 수신 기간이 소진될 때까지 확인됩니다.

EnableKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

TCP '연결 유지' 옵션을 사용 설정합니다.

TCPEndPoint::EnableKeepAlive를 사용합니다.

interval초마다 TCP '연결 유지' 프로브 세그먼트를 자동으로 전송하기 시작합니다. 음성 응답을 받거나 긍정적인 응답을 받지 못한 상태로 timeoutCount 프로브 세그먼트를 전송한 후에는 연결이 자동으로 취소됩니다.

세부정보
매개변수
[in] interval
프로브 요청 간 시간(초)입니다.
[in] timeoutCount
제한 시간 전에 전송할 프로브 수입니다.
반환 값
INET_NO_ERROR
성공: 주소와 포트가 추출되었습니다.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.
INET_ERROR_CONNECTION_ABORTED
TCP 연결이 더 이상 열려 있지 않습니다.
INET_ERROR_NOT_IMPLEMENTED
시스템 구현이 완료되지 않았습니다.
other
다른 시스템 또는 플랫폼 오류

사양 세부정보는 RFC 1122, 섹션 4.2.3.6을 참고하세요.

연결된 TCP 연결에서 TCP 연결 유지 프로브를 사용 설정합니다.

참고: 이 메서드는 엔드포인트가 연결된 상태 중 하나일 때만 호출할 수 있습니다. 이 메서드를 여러 번 호출하여 연결 유지 간격이나 제한 시간 횟수를 조정할 수 있습니다.

세부정보
매개변수
interval
연결 유지 프로브 간의 간격 (초)입니다. 이 값은 마지막으로 전송된 데이터 패킷과 첫 번째 연결 유지 프로브의 전송 사이의 시간을 제어합니다.
timeoutCount
연결이 실패한 것으로 간주되기 전에 확인되지 않은 최대 프로브 수입니다.

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

EnableNoDelay.

TCPEndPoint::EnableNoDelay를 사용합니다.

TCP_NODELAY 소켓 옵션을 설정하여 TCP의 Nagle 버퍼링 알고리즘을 사용 중지합니다.

EnableReceive

void EnableReceive(
  void
)

리셉션 사용

모든 이벤트 핸들러를 사용 설정합니다. 수신을 사용 중지하는 엔드포인트로 전송된 데이터는 수신 기간이 소진될 때까지 확인됩니다.

무료

void Free(
  void
)

오류를 무시하고 TCP 완전히 닫기를 시작하거나 계속합니다.

객체가 여유 풀로 반환되며 나머지 모든 사용자 참조는 이후에 무효화됩니다.

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

로컬 엔드포인트의 IP 주소 및 TCP 포트를 추출합니다.

두 인수에 NULL 포인터 값을 사용하지 마세요.

세부정보
매개변수
[out] retAddr
로컬 엔드포인트의 IP 주소입니다.
[out] retPort
로컬 엔드포인트의 TCP 포트입니다.
반환 값
INET_NO_ERROR
성공: 주소와 포트가 추출되었습니다.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.
INET_ERROR_CONNECTION_ABORTED
TCP 연결이 더 이상 열려 있지 않습니다.

GetPeerInfo

INET_ERROR GetPeerInfo(
  IPAddress *retAddr,
  uint16_t *retPort
) const 

원격 엔드포인트의 IP 주소 및 TCP 포트를 추출합니다.

두 인수에 NULL 포인터 값을 사용하지 마세요.

세부정보
매개변수
[out] retAddr
원격 엔드포인트의 IP 주소입니다.
[out] retPort
원격 엔드포인트의 TCP 포트입니다.
반환 값
INET_NO_ERROR
성공: 주소와 포트가 추출되었습니다.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.
INET_ERROR_CONNECTION_ABORTED
TCP 연결이 더 이상 열려 있지 않습니다.

IsConnected

bool IsConnected(
  void
) const 

TCP 연결이 설정되었는지 추출합니다.

수신 대기

INET_ERROR Listen(
  uint16_t backlog
)

TCP 메시지를 수신할 엔드포인트를 준비합니다.

State가 이미 kState_Listening이면 작업이 수행되지 않습니다. 그렇지 않으면 StatekState_Listening로 설정되고 엔드포인트는 플랫폼의 시맨틱에 따라 TCP 메시지를 수신할 준비가 됩니다.

세부정보
매개변수
[in] backlog
연결 수락 큐의 최대 깊이
반환 값
INET_NO_ERROR
성공: 엔드포인트에서 메시지를 수신할 준비가 되었습니다.
INET_ERROR_INCORRECT_STATE
엔드포인트가 이미 수신 대기 중입니다.

일부 플랫폼에서는 backlog 인수가 사용되지 않습니다 (큐의 깊이가 고정되며 한 번에 하나의 연결만 허용될 수 있음).

LwIP 시스템에서는 이미 LwIP 스택 잠금이 설정된 상태에서 이 메서드를 호출하면 안 됩니다.

LogId

uint16_t LogId(
  void
)

엔드포인트의 식별자를 가져옵니다.

세부정보
반환
사용 로그의 불투명한 고유 식별자를 반환합니다.

MarkActive

void MarkActive(
  void
)

활동 알림, 즉 유휴 타이머를 재설정합니다.

유휴 타이머를 0으로 재설정합니다.

PendingReceiveLength

uint32_t PendingReceiveLength(
  void
)

미확인 수신 데이터의 길이를 추출합니다.

세부정보
반환
아직 AckReceive(uint16_t len)로 확인되지 않은 수신 큐의 바이트 수입니다.

PendingSendLength

uint32_t PendingSendLength(
  void
)

첫 번째 전송을 기다리는 데이터의 길이를 추출합니다.

세부정보
반환
전송 대기열의 전송되지 않은 바이트 수입니다.

PutBackReceivedData

INET_ERROR PutBackReceivedData(
  Weave::System::PacketBuffer *data
)

메시지 텍스트를 수신 대기열의 헤드로 다시 푸시합니다.

이 메서드는 확인되지 않은 데이터 부분을 수신 대기열에 다시 넣을 때만 데이터 수신 이벤트 핸들러에 의해서만 호출될 수 있습니다. 호출자가 데이터 수신 이벤트 핸들러의 범위를 벗어나거나, data가 핸들러에 제공된 Weave::System::PacketBuffer이 아니거나, dataAckReceive(uint16_t len) 메서드에 대한 이전 호출에서 확인된 바이트 이후에 남아 있는 미확인 부분을 포함하지 않는 경우 운영 시맨틱스는 정의되지 않습니다.

세부정보
매개변수
[out] data
푸시할 메시지 텍스트입니다.
반환 값
INET_NO_ERROR
성공: 리셉션이 확인됨.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.

보내기

INET_ERROR Send(
  Weave::System::PacketBuffer *data,
  bool push
)

TCP 연결 시 메시지 텍스트를 전송합니다.

Weave::System::PacketBuffer::Free 메서드는 전송 성공 여부와 관계없이 data 인수에서 호출됩니다.

세부정보
매개변수
[out] data
전송할 메시지 텍스트입니다.
[out] push
true이면 즉시 전송하고, 그렇지 않으면 큐에 추가합니다.
반환 값
INET_NO_ERROR
성공: 주소와 포트가 추출되었습니다.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Connect가 성공하거나 오류를 반환할 시간 제한을 설정합니다.

세부정보
매개변수
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

TCP TCP_USER_TIMEOUT 소켓 옵션을 설정합니다.

TCPEndPoint::SetUserTimeout을 사용합니다.

값이 0보다 크면 TCP가 해당 연결을 강제로 닫기 전에 전송된 데이터가 미확인 상태로 유지될 수 있는 최대 시간(밀리초)을 지정합니다. 옵션 값이 0으로 지정되면 TCP가 시스템 기본값을 사용합니다. 자세한 내용은 RFC 5482를 참조하세요.

세부정보
매개변수
[in] userTimeoutMillis
TCP 사용자 시간 제한 값(밀리초)입니다.
반환 값
INET_NO_ERROR
성공: 주소와 포트가 추출되었습니다.
INET_ERROR_NOT_IMPLEMENTED
시스템 구현이 완료되지 않았습니다.
other
다른 시스템 또는 플랫폼 오류

TCP 사용자 제한 시간 소켓 옵션을 설정합니다.

값이 0보다 크면 TCP가 해당 연결을 강제로 닫기 전에 전송된 데이터가 미확인 상태로 유지될 수 있는 최대 시간(밀리초)을 지정합니다. 옵션 값을 0으로 지정하면 TCP가 시스템 기본값을 사용합니다. 자세한 내용은 RFC 5482를 참조하세요.

참고: 이 메서드는 엔드포인트가 연결된 상태 중 하나일 때만 호출할 수 있습니다. 이 메서드를 여러 번 호출하여 연결 유지 간격이나 제한 시간 횟수를 조정할 수 있습니다.

종료

INET_ERROR Shutdown(
  void
)

TCP 절반 닫기를 시작합니다. 즉, 전송을 완료합니다.

세부정보
반환 값
INET_NO_ERROR
성공: 주소와 포트가 추출되었습니다.
INET_ERROR_INCORRECT_STATE
TCP 연결이 설정되지 않았습니다.
other
다른 시스템 또는 플랫폼 오류