nl :: Inet :: TCPEndPoint
#include <src/inet/TCPEndPoint.h>
이 클래스의 개체는 TCP 전송 끝점을 나타냅니다.
요약
Nest Inet Layer는 TCP 전송 엔드 포인트 (Linux 및 BSD 파생 시스템의 SOCK_STREAM 소켓) 또는 LwIP TCP 프로토콜 제어 블록과 상호 작용하는 방법을 캡슐화합니다.
계승
:에서 상속 NL :: INET :: EndPointBasis공개 유형 | |
---|---|
@10 { | 열거 형 기본 엔드 포인트의 기본 동적 상태입니다. |
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* 연결 수락 오류 이벤트 처리 기능의 유형입니다. |
OnConnectCompleteFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* 연결 설정 이벤트 처리 기능의 종류. |
OnConnectionClosedFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* 연결 설정 이벤트 처리 기능의 종류. |
OnConnectionReceivedFunct )(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) | typedefvoid(* 수신 된 연결 유형 이벤트 처리 기능. |
OnDataReceivedFunct )(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) | typedefvoid(* 데이터 수신 이벤트 처리 기능의 종류. |
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) | typedefvoid(* 데이터 전송 이벤트 처리 기능의 종류. |
OnPeerCloseFunct )(TCPEndPoint *endPoint) | typedefvoid(* 반 폐쇄 수신 이벤트 처리 기능의 유형. |
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) | typedefvoid(* 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 "keep-alive"옵션을 활성화합니다. |
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 연결이 성공하거나 오류를 반환하도록 제한 시간을 설정합니다. |
SetUserTimeout (uint32_t userTimeoutMillis) | TCP TCP_USER_TIMEOUT 소켓 옵션을 설정합니다. |
Shutdown (void) | TCP를 반쯤 닫으면 전송이 완료됩니다. |
공개 유형
@ 10
@10
기본 엔드 포인트의 기본 동적 상태입니다.
개체는 "준비"상태에서 초기화되고 TCP 전송 상태 시스템의 상태 단순화에 해당하는 후속 상태로 진행됩니다.
참고 : kBasisState_Closed
상태 열거을 맵 kState_Ready
역사 바이너리 호환성을 위해. 기존 kState_Closed
별도로 이전에 존재 "아직 열려 있지"과 "이전에 지금은 폐쇄 연"의 차이를 식별하기 위해 존재 kState_Ready
및 kState_Closed
상태.
OnAcceptErrorFunct
void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)
연결 수락 오류 이벤트 처리 기능의 유형입니다.
받는 사람이 유형의 기능을 제공 OnAcceptError
에서 프로세스 연결 승인 오류 이벤트에 위임 멤버 endPoint
. err
인수는 오류의 유형에 대한 구체적 세부 사항을 제공합니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
OnConnectCompleteFunct
void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)
연결 설정 이벤트 처리 기능의 종류.
받는 사람이 유형의 기능을 제공 OnConnectComplete
에 연결 설정 이벤트를 처리 할 대리자 멤버 endPoint
. err
인수는 실패에서 성공의 연결을 구분합니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
OnConnectionClosedFunct
void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
연결 설정 이벤트 처리 기능의 종류.
받는 사람이 유형의 기능을 제공 OnConnectionClosed
에 프로세스 연결 종료 이벤트에 위임 멤버 endPoint
. err
인수는 실패에서 성공 종단을 구별한다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
OnConnectionReceivedFunct
void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)
수신 된 연결 유형 이벤트 처리 기능.
받는 유형의 기능 제공 OnConnectionReceived
에 프로세스 연결부 수신 이벤트 대리자 부재 listeningEndPoint
. 새로받은 엔드 포인트 conEndPoint
IP 주소에 위치 peerAddr
및 TCP 포트 peerPort
.
세부 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개 변수 |
|
OnDataReceivedFunct
void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)
데이터 수신 이벤트 처리 기능의 종류.
받는 유형의 기능 제공 OnDataReceived
온 프로세스 데이터 수신 이벤트 대리자 부재 endPoint
data
수신 된 메시지 텍스트이다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
데이터 수신 이벤트 핸들러 사용하여 처리 된 데이터인지해야 AckReceive
방법. Free
하지 않는 데이터 버퍼에 대한 방법은 호출해야합니다 PutBackReceivedData
대신 사용됩니다.
OnDataSentFunct
void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
데이터 전송 이벤트 처리 기능의 종류.
받는 유형의 기능 제공 OnDataSent
온 프로세스 데이터 송신 이벤트 대리자 부재 endPoint
len
하부 네트워크 스택으로 전송받을 수있는 TCP 전송 창에 추가 메시지 텍스트의 길이이다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
OnPeerCloseFunct
void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)
반 폐쇄 수신 이벤트 처리 기능의 유형.
받는 사람이 유형의 기능을 제공 OnPeerClose
에 연결 종료 이벤트를 처리 할 대리자 멤버 endPoint
.
세부 | |||
---|---|---|---|
매개 변수 |
|
OnTCPSendIdleChangedFunct
void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)
TCP SendIdle의 유형이 신호 처리 기능을 변경했습니다.
받는 이러한 유형의 기능을 제공 OnTCPSendIdleChanged
의 송신 채널의 이벤트 처리 대리인 부재 TCPEndPoint 유휴 인 유휴 상태 사이의 상태를 변경한다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
공용 속성
OnTCPSendIdleChanged
OnTCPSendIdleChangedFunct OnTCPSendIdleChanged
TCP 연결의 전송 채널의 유휴 상태가 변경 될 때 신호를 보내는 끝점의 이벤트 처리 함수 위임입니다.
이것은 전송 된 데이터가 피어에게 안정적으로 전달되었는지 여부에 따라 적절한 조치를 취하기 위해 상위 계층에서 사용됩니다.
ReceiveEnabled
bool ReceiveEnabled
응용 프로그램이 데이터를 수신하고 있는지 여부를 나타내는 제어 스위치입니다.
상태
enum nl::Inet::TCPEndPoint::@10 State
기본 엔드 포인트의 기본 동적 상태입니다.
개체는 "준비"상태에서 초기화되고 TCP 전송 상태 시스템의 상태 단순화에 해당하는 후속 상태로 진행됩니다.
참고 : kBasisState_Closed
상태 열거을 맵 kState_Ready
역사 바이너리 호환성을 위해. 기존 kState_Closed
별도로 이전에 존재 "아직 열려 있지"과 "이전에 지금은 폐쇄 연"의 차이를 식별하기 위해 존재 kState_Ready
및 kState_Closed
상태.
공공 기능
중단
void Abort( void )
끝점을 중단하는 방식으로 닫습니다. 즉, RST 패킷을 보냅니다.
AckReceive
INET_ERROR AckReceive( uint16_t len )
메시지 텍스트 수신을 확인합니다.
이 방법을 사용하여 수신 된 데이터 전체 또는 일부의 수신을 확인합니다. 경우 동작은 정의되어 있지 않습니다 len
총 뛰어난 미확인 수신 된 데이터보다 더 크다.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||
반환 값 |
|
묶다
INET_ERROR Bind( IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr )
끝점을 인터페이스 IP 주소에 바인딩합니다.
엔드 포인트를 지정된 네트워크 인터페이스 IP 주소에 바인드합니다.
세부 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||||||||
반환 값 |
|
LwIP에서이 메서드는 이미 획득 한 LwIP 스택 잠금으로 호출하면 안됩니다.
닫기
INET_ERROR Close( void )
즉, 송신 및 수신이 모두 완료된 TCP 전체 닫기를 시작합니다.
세부 | |||||||
---|---|---|---|---|---|---|---|
반환 값 |
|
잇다
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.
세부 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||||
반환 값 |
|
DisableKeepAlive
INET_ERROR DisableKeepAlive( void )
TCP "keep-alive"옵션을 비활성화합니다.
TCPEndPoint :: DisableKeepAlive .
연관된 TCP 연결에서 TCP Keepalive 프로브를 비활성화합니다.
세부 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
반환 값 |
|
주 : 엔드 포인트가 연결된 상태 중 하나에있을 때이 방법 만 호출 할 수 있습니다. 이 메서드는 끝점에서 연결 유지가 활성화되지 않은 경우 아무 작업도 수행하지 않습니다.
DisableReceive
void DisableReceive( void )
수신을 비활성화합니다.
모든 이벤트 핸들러를 비활성화합니다. 수신을 비활성화하는 엔드 포인트로 전송 된 데이터는 수신 창이 소진 될 때까지 승인됩니다.
EnableKeepAlive
INET_ERROR EnableKeepAlive( uint16_t interval, uint16_t timeoutCount )
TCP "keep-alive"옵션을 활성화합니다.
TCPEndPoint :: EnableKeepAlive .
모든 TCP 전송 "연결 유지"프로브 세그먼트 자동으로 시작 interval
초. 연결은 네거티브 응답을 수신 한 후에, 또는 전송 한 후 자동으로 중단 할 timeoutCount
긍정 응답을 수신하지 않고, 프로브 세그먼트.
세부 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||||||
반환 값 |
|
사양 세부 정보는 RFC 1122, 섹션 4.2.3.6을 참조하십시오.
연결된 TCP 연결에서 TCP 연결 유지 프로브를 활성화합니다.
주 : 엔드 포인트가 연결된 상태 중 하나에있을 때이 방법 만 호출 할 수 있습니다. 이 메서드는 연결 유지 간격 또는 제한 시간 수를 조정하기 위해 여러 번 호출 할 수 있습니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
EnableNoDelay
INET_ERROR EnableNoDelay( void )
EnableReceive
void EnableReceive( void )
수신을 활성화합니다.
모든 이벤트 핸들러를 활성화합니다. 수신을 비활성화하는 엔드 포인트로 전송 된 데이터는 수신 창이 소진 될 때까지 승인됩니다.
비어 있는
void Free( void )
오류를 무시하고 TCP 전체 닫기를 시작 (또는 계속)합니다.
개체는 사용 가능한 풀로 반환되고 나머지 모든 사용자 참조는 이후에 유효하지 않습니다.
GetLocalInfo
INET_ERROR GetLocalInfo( IPAddress *retAddr, uint16_t *retPort )
로컬 엔드 포인트의 IP 주소와 TCP 포트를 추출합니다.
사용하지 마십시오 NULL
어느 쪽인가의 인수에 대한 포인터 값을 설정합니다.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||
반환 값 |
|
GetPeerInfo
INET_ERROR GetPeerInfo( IPAddress *retAddr, uint16_t *retPort ) const
원격 엔드 포인트의 IP 주소와 TCP 포트를 추출합니다.
사용하지 마십시오 NULL
어느 쪽인가의 인수에 대한 포인터 값을 설정합니다.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||
반환 값 |
|
연결되었다
bool IsConnected( void ) const
TCP 연결이 설정되었는지 여부를 추출하십시오.
들리다
INET_ERROR Listen( uint16_t backlog )
TCP 메시지를받을 끝점을 준비합니다.
경우 State
이미 kState_Listening
후, 아무런 조작이 실행되지 그렇지 State
로 설정 kState_Listening
엔드 포인트는 플랫폼의 의미에있어서, 수신 한 TCP 메시지를 준비한다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
| ||||
반환 값 |
|
일부 플랫폼에서 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
처리기에 제공되거나 data
a로 인정 된 바이트 이후 남은 수신 확인되지 않은 부분을 포함하지 않는다 받는 이전 통화 AckReceive(uint16_t len)
방법.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
| ||||
반환 값 |
|
보내다
INET_ERROR Send( Weave::System::PacketBuffer *data, bool push )
TCP 연결시 메시지 텍스트를 보냅니다.
Weave::System::PacketBuffer::Free
방법은 호출되는 data
에 관계없이 전송이 성공 또는 실패 여부의 인수입니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
| ||||
반환 값 |
|
SetConnectTimeout
void SetConnectTimeout( const uint32_t connTimeoutMsecs )
연결이 성공하거나 오류를 반환하도록 제한 시간을 설정합니다.
세부 | |||
---|---|---|---|
매개 변수 |
|
SetUserTimeout
INET_ERROR SetUserTimeout( uint32_t userTimeoutMillis )
TCP TCP_USER_TIMEOUT 소켓 옵션을 설정합니다.
TCPEndPoint :: SetUserTimeout .
값이 0보다 크면 TCP가 해당 연결을 강제로 닫기 전에 전송 된 데이터가 승인되지 않은 상태로 남아있을 수있는 최대 시간 (밀리 초)을 지정합니다. 옵션 값이 0으로 지정되면 TCP는 시스템 기본값을 사용합니다. 자세한 내용은 RFC 5482를 참조하십시오.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||
반환 값 |
|
TCP 사용자 제한 시간 소켓 옵션을 설정하십시오.
값이 0보다 크면 TCP가 해당 연결을 강제로 닫기 전에 전송 된 데이터가 승인되지 않은 상태로 남아있을 수있는 최대 시간 (밀리 초)을 지정합니다. 옵션 값이 0으로 지정되면 TCP는 시스템 기본값을 사용합니다. 자세한 내용은 RFC 5482를 참조하십시오.
주 : 엔드 포인트가 연결된 상태 중 하나에있을 때이 방법 만 호출 할 수 있습니다. 이 메서드는 연결 유지 간격 또는 제한 시간 수를 조정하기 위해 여러 번 호출 할 수 있습니다.
일시 휴업
INET_ERROR Shutdown( void )
TCP를 반쯤 닫으면 전송이 완료됩니다.
세부 | |||||||
---|---|---|---|---|---|---|---|
반환 값 |
|