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 '연결 유지' 사용 중지 옵션을 선택합니다.
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)

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

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

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

OnConnectionReceivedFunct

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

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

listeningEndPoint에서 연결 수신 이벤트를 처리하도록 OnConnectionReceived 위임 멤버에 이 유형의 함수를 제공합니다. 새로 수신된 엔드포인트 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)

절반 종료 수신 이벤트 처리 함수의 유형입니다.

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

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

OnTCPSendIdleChangedFunct

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

TCP SendIdle 변경 신호 처리 기능의 유형입니다.

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

세부정보
매개변수
[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
addrTypekIPAddressType_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 '연결 유지' 사용 중지 옵션을 선택합니다.

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.

TCP '연결 유지' 자동 전송 시작 interval초마다 프로브 세그먼트를 가져옵니다. 부정적인 응답을 받은 후 또는 긍정적인 응답을 받지 않고 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
다른 시스템 또는 플랫폼 오류