Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

TCP

이 모듈은 TCP 통신을 제어하는 ​​기능을 포함합니다.

요약

열거

anonymous enum 열거
에 전달이 열거 형을 정의 플래그 otTcpConnect () .
anonymous enum 열거
이 열거에 전달 플래그 정의 otTcpSendByReference .
otTcpDisconnectedReason 열거
otTcpIncomingConnectionAction {
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT ,
OT_TCP_INCOMING_CONNECTION_ACTION_DEFER ,
OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE
}
열거
이 열거형은 들어오는 연결 작업을 정의합니다.

형식 정의

otLinkedBuffer 형식 정의
TCP와 함께 사용하기 위한 연결된 버퍼 구조입니다.
otTcpAcceptDone )(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer) 형식 정의
void(*
이 콜백은 TCP 연결이 이제 양방향 통신을 위한 준비가 되었음을 나타냅니다.
otTcpAcceptReady )(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto) 형식 정의
이 콜백은 이 TCP 수신기와 일치하는 들어오는 연결이 도착했음을 나타냅니다.
otTcpBytesAcked )(otTcpEndpoint *aEndpoint, size_t aNumBytes) 형식 정의
void(*
이 콜백 알리는 먼저 응용 프로그램 aNumBytes 자신의 기본 메모리 연결 피어에 의해 인정 된 버퍼 송신 인이 응용 프로그램에 의해 재생 될 수있다.
otTcpDisconnected )(otTcpEndpoint *aEndpoint, otTcpDisconnectedReason aReason) 형식 정의
void(*
이 콜백은 연결이 끊어져 더 이상 사용하지 않아야 하거나 연결이 TIME-WAIT 상태에 들어갔음을 나타냅니다.
otTcpDisconnectedReason 형식 정의
enum otTcpDisconnectedReason
otTcpEndpoint 형식 정의
otTcpEndpointInitializeArgs 형식 정의
이 구조는 인수를 포함 otTcpEndpointInitialize () 함수입니다.
otTcpEstablished )(otTcpEndpoint *aEndpoint) 형식 정의
void(*
이 콜백은 TCP 3방향 핸드셰이크가 완료되었고 연결이 설정되었음을 애플리케이션에 알립니다.
otTcpIncomingConnectionAction 형식 정의
이 열거형은 들어오는 연결 작업을 정의합니다.
otTcpListener 형식 정의
otTcpListenerInitializeArgs 형식 정의
이 구조는 인수를 포함 otTcpListenerInitialize () 함수입니다.
otTcpReceiveAvailable )(otTcpEndpoint *aEndpoint, size_t aBytesAvailable, bool aEndOfStream, size_t aBytesRemaining) 형식 정의
void(*
이 콜백은 수신 버퍼에서 사용할 수 있는 바이트 수를 나타냅니다.
otTcpSendDone )(otTcpEndpoint *aEndpoint, otLinkedBuffer *aData) 형식 정의
void(*
이 콜백 알리는 제공 데이터하는 응용 프로그램 aData 연결 피어에 의해 인정 된 aData 및 포함 된 데이터는 응용 프로그램에 의해 재생 될 수있다.
otTcpSendReady )(otTcpEndpoint *aEndpoint) 형식 정의
void(*
이 콜백은 데이터가 송신 버퍼에 추가되면 피어가 일부 데이터를 ACK하면 전송을 위해 대기하는 것과 달리 일부 데이터가 지연 없이 즉시 전송될 것임을 애플리케이션에 알립니다.

기능

otTcpAbort ( otTcpEndpoint *aEndpoint)
이 TCP 끝점과 연결된 TCP 연결을 강제로 종료합니다.
otTcpBind ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName)
TCP 끝점을 IP 주소 및 포트에 바인딩합니다.
otTcpCommitReceive ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
응용 프로그램이 완료 처리가되는 TCP 스택 알립니다 aNumBytes 의 시작 부분에서 바이트의 데이터는 버퍼와 TCP 스택 필요하지에 그 바이트를 유지 계속 수신 버퍼 것을받을 수 있습니다.
otTcpConnect ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName, uint32_t aFlags)
이 연결에 대한 원격 호스트 및 포트를 기록합니다.
otTcpEndpointDeinitialize ( otTcpEndpoint *aEndpoint)
이 TCP 끝점을 초기화 해제합니다.
otTcpEndpointGetContext ( otTcpEndpoint *aEndpoint)
void *
과 연관이 있었다 컨텍스트 포인터를 얻 aEndpoint 초기화시를.
otTcpEndpointGetInstance ( otTcpEndpoint *aEndpoint)
얻와 관련 된 otInstance aEndpoint 초기화시.
otTcpEndpointInitialize ( otInstance *aInstance, otTcpEndpoint *aEndpoint, otTcpEndpointInitializeArgs *aArgs)
TCP 끝점을 초기화합니다.
otTcpGetLocalAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
TCP 끝점의 로컬 호스트 및 포트에 대한 포인터를 얻습니다.
otTcpGetPeerAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
TCP 끝점의 피어 호스트 및 포트에 대한 포인터를 얻습니다.
otTcpListen ( otTcpListener *aListener, const otSockAddr *aSockName)
지정된 IP 주소 및 포트와 일치하는 들어오는 TCP 연결이 이 TCP 수신기의 콜백을 트리거하도록 합니다.
otTcpListenerDeinitialize ( otTcpListener *aListener)
이 TCP 수신기를 초기화 해제합니다.
otTcpListenerGetContext ( otTcpListener *aListener)
void *
과 연관이 있었다 컨텍스트 포인터를 얻 aListener 초기화시를.
otTcpListenerGetInstance ( otTcpListener *aListener)
얻와 관련 된 otInstance aListener 초기화시.
otTcpListenerInitialize ( otInstance *aInstance, otTcpListener *aListener, otTcpListenerInitializeArgs *aArgs)
TCP 수신기를 초기화합니다.
otTcpReceiveByReference (const otTcpEndpoint *aEndpoint, const otLinkedBuffer **aBuffer)
현재 TCP 수신 버퍼에 있는 데이터를 참조하는 연결된 버퍼 체인을 애플리케이션에 제공합니다.
otTcpReceiveContiguify ( otTcpEndpoint *aEndpoint)
메모리에서 완전히 연속하도록 수신 버퍼를 재구성합니다.
otTcpSendByExtension ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
최종의 길이를 연장하여 송신 버퍼에 데이터를 추가 otLinkedBuffer 지정된 양만큼 송신 버퍼를.
otTcpSendByReference ( otTcpEndpoint *aEndpoint, otLinkedBuffer *aBuffer, uint32_t aFlags)
링크 된 버퍼에 의해 참조를 추가 데이터가 가리키는 aBuffer 송신 버퍼에.
otTcpSendEndOfStream ( otTcpEndpoint *aEndpoint)
이 TCP 끝점이 더 이상 데이터를 보내지 않을 것임을 연결 피어에게 알립니다.
otTcpStopListening ( otTcpListener *aListener)
이 TCP 수신기가 들어오는 연결에 대한 수신을 중지하도록 합니다.

구조체

otLinkedBuffer

TCP와 함께 사용하기 위한 연결된 버퍼 구조입니다.

otTcpEndpoint

이 구조는 TCP 끝점을 나타냅니다.

otTcpEndpointInitializeArgs

이 구조는 인수를 포함 otTcpEndpointInitialize () 함수입니다.

otTcpListener

이 구조는 TCP 수신기를 나타냅니다.

otTcpListenerInitializeArgs

이 구조는 인수를 포함 otTcpListenerInitialize () 함수입니다.

열거

익명의 열거형

 anonymous enum

에 전달이 열거 형을 정의 플래그 otTcpConnect () .

익명의 열거형

 anonymous enum

이 열거에 전달 플래그 정의 otTcpSendByReference .

otTcpDisconnectedReason

 otTcpDisconnectedReason

otTcpIncomingConnectionAction

 otTcpIncomingConnectionAction

이 열거형은 들어오는 연결 작업을 정의합니다.

이 사용된다 otTcpAcceptReady () 콜백.

속성
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT

들어오는 연결을 수락합니다.

OT_TCP_INCOMING_CONNECTION_ACTION_DEFER

들어오는 연결을 연기(조용히 무시)합니다.

OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE

들어오는 연결을 거부합니다.

형식 정의

otLinkedBuffer

struct otLinkedBuffer otLinkedBuffer

TCP와 함께 사용하기 위한 연결된 버퍼 구조입니다.

단일 otLinkedBuffer의 구조 및 mData mLength 통해 메모리의 바이트 배열을 참조한다. mNext 필드의 체인을 형성하기 위해 사용된다 otLinkedBuffer의 구조.

otTcpAcceptDone

void(* otTcpAcceptDone)(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer)

이 콜백은 TCP 연결이 이제 양방향 통신을 위한 준비가 되었음을 나타냅니다.

TCP Fast Open의 경우 TCP 연결 핸드셰이크가 실제로 완료되기 전일 수 있습니다. 응용 프로그램에는 연결을 수락한 TCP 수신기와 연결이 수락된 TCP 끝점 모두에 대한 컨텍스트 포인터가 제공됩니다. 제공된 컨텍스트는 TCP 수신기와 연결된 컨텍스트입니다.

세부
매개변수
[in] aListener
들어오는 연결과 일치하는 TCP 수신기입니다.
[in] aEndpoint
들어오는 연결이 수락된 TCP 끝점입니다.
[in] aPeer
들어오는 연결이 시작된 호스트 및 포트입니다.

otTcpAcceptReady

otTcpIncomingConnectionAction(* otTcpAcceptReady)(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto)

이 콜백은 이 TCP 수신기와 일치하는 들어오는 연결이 도착했음을 나타냅니다.

일반적인 응답은 응용 프로그램이 들어오는 연결을 수락하는 것입니다. 그것은 채워 그렇게 aAcceptInto 받는 포인터로 otTcpEndpoint 들어오는 연결을 받아 들일되는. 이 otTcpEndpoint가 이미 사용하여 초기화해야합니다 otTcpEndpointInitialize을 () . 그런 다음 응용 프로그램은 OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT를 반환합니다.

또는 응용 프로그램이 들어오는 연결 수락을 거부할 수 있습니다. 이 작업을 수행하는 응용 프로그램에는 두 가지 방법이 있습니다. 첫째, 응용 프로그램이 OT_TCP_INCOMING_CONNECTION_ACTION_DEFER를 반환하면 OpenThread는 연결 설정 요청을 자동으로 무시합니다. 연결 피어는 요청을 재전송할 가능성이 높으며 이 시점에서 콜백이 다시 호출됩니다. 이것은 리소스가 현재 연결을 수락하는 데 사용할 수 없는 경우에 유용하지만 연결 피어가 연결 설정 시도를 재전송할 때 리소스를 사용할 수 있습니다. 둘째, 응용 프로그램이 OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE를 반환하면 OpenThread는 연결을 시도한 호스트에 "연결 거부됨" 메시지를 보냅니다. 응용 프로그램이 들어오는 연결을 거부하는 경우, 그것은 채우는 데 필요하지 않습니다 aAcceptInto .

세부
매개변수
[in] aListener
들어오는 연결과 일치하는 TCP 수신기입니다.
[in] aPeer
들어오는 연결이 시작되는 호스트 및 포트입니다.
[out] aAcceptInto
들어오는 연결을 수락할 TCP 끝점입니다.
보고
들어오는 연결을 처리하는 방법에 대한 설명입니다.

otTcpBytesAcked

void(* otTcpBytesAcked)(otTcpEndpoint *aEndpoint, size_t aNumBytes)

이 콜백 알리는 먼저 응용 프로그램 aNumBytes 자신의 기본 메모리 연결 피어에 의해 인정 된 버퍼 송신 인이 응용 프로그램에 의해 재생 될 수있다.

이 콜백은 올바른 TCP 작업에 필요하지 않습니다. 대부분의 응용 프로그램은 단지에 의존 할 수 otTcpSendDone () 콜백. 응용 프로그램이 전송 버퍼의 메모리를 다시 사용할 수 있게 되거나(연결된 버퍼의 전체 데이터 가치가 사용 가능해질 때까지 기다리는 대신) 또는 연결이 순방향 진행 중인지 여부에 대한 표시로 세분화된 피드백을 원하는 경우 이 콜백을 등록할 수 있습니다. .

세부
매개변수
[in] aEndpoint
연결을 위한 TCP 끝점입니다.
[in] aNumBytes
연결 피어가 새로 승인한 바이트 수입니다.

otTcp 연결 끊김

void(* otTcpDisconnected)(otTcpEndpoint *aEndpoint, otTcpDisconnectedReason aReason)

이 콜백은 연결이 끊어져 더 이상 사용하지 않아야 하거나 연결이 TIME-WAIT 상태에 들어갔음을 나타냅니다.

이는 접속 설정 시도 (호출에 의해 시작하는 경우 발생할 수 otTcpConnect는 () )이 실패하거나, 어느 시점 이후 (예를 들어, 연결 시간 또는 RST 세그먼트 연결 피어로부터 수신되는 경우). 이 콜백 화재되면, 응용 프로그램이 연결을 위해 제공하는 모든 자원 (즉, 어떤 otLinkedBuffers 재생 될 수 그들이 참조하고 메모리,하지만이 아닌 TCP는 자체 또는이 수신 버퍼 공간을 엔드 포인트). 연결이 TIME-WAIT 상태로 들어가는 경우 이 콜백은 두 번 호출됩니다. 한 번은 TIME-WAIT 상태로 진입할 때(OT_TCP_DISCONNECTED_REASON_TIME_WAIT 사용), TIME-WAIT 상태가 만료되면(OT_TCP_DISCONNECTED_REASON_NORMAL 사용) 다시 호출됩니다.

세부
매개변수
[in] aEndpoint
연결이 끊어진 TCP 끝점입니다.
[in] aReason
연결이 끊어진 이유입니다.

otTcpDisconnectedReason

enum otTcpDisconnectedReason otTcpDisconnectedReason

otTcpEndpoint

struct otTcpEndpoint otTcpEndpoint

otTcpEndpointInitializeArgs

struct otTcpEndpointInitializeArgs otTcpEndpointInitializeArgs

이 구조는 인수를 포함 otTcpEndpointInitialize () 함수입니다.

otTcp설립

void(* otTcpEstablished)(otTcpEndpoint *aEndpoint)

이 콜백은 TCP 3방향 핸드셰이크가 완료되었고 연결이 설정되었음을 애플리케이션에 알립니다.

세부
매개변수
[in] aEndpoint
이제 연결이 설정된 TCP 끝점입니다.

otTcpIncomingConnectionAction

enum otTcpIncomingConnectionAction otTcpIncomingConnectionAction

이 열거형은 들어오는 연결 작업을 정의합니다.

이 사용된다 otTcpAcceptReady () 콜백.

otTcpListener

struct otTcpListener otTcpListener

otTcpListenerInitializeArgs

struct otTcpListenerInitializeArgs otTcpListenerInitializeArgs

이 구조는 인수를 포함 otTcpListenerInitialize () 함수입니다.

otTcpReceiveAvailable

void(* otTcpReceiveAvailable)(otTcpEndpoint *aEndpoint, size_t aBytesAvailable, bool aEndOfStream, size_t aBytesRemaining)

이 콜백은 수신 버퍼에서 사용할 수 있는 바이트 수를 나타냅니다.

수신 버퍼에 바이트가 추가될 때마다 그리고 스트림 끝에 도달할 때 호출됩니다. 스트림의 끝에 도달 한 경우 (즉, 연결 피어 쓰기에 대한 연결의 최종 폐쇄했기 때문에 더 이상 데이터를 읽을 수가되지 않을 경우), 다음 aEndOfStream 사실이다. 마지막으로, aBytesRemaining (가) 도착 추가 데이터를 저장하는 수신 버퍼에 남은 용량을 나타냅니다.

세부
매개변수
[in] aEndpoint
연결을 위한 TCP 끝점입니다.
[in] aBytesAvailable
연결의 수신 버퍼에 있는 바이트 수입니다.
[in] aEndOfStream
연결의 수신 버퍼에 이미 있는 것 외에 추가 데이터를 수신할 수 있는지 여부를 나타냅니다.
[in] aBytesRemaining
수신 버퍼가 가득 차기 전에 수신할 수 있는 추가 바이트 수입니다.

otTcpSendDone

void(* otTcpSendDone)(otTcpEndpoint *aEndpoint, otLinkedBuffer *aData)

이 콜백 알리는 제공 데이터하는 응용 프로그램 aData 연결 피어에 의해 인정 된 aData 및 포함 된 데이터는 응용 프로그램에 의해 재생 될 수있다.

aData 통해 TCP에 전달 된 것과 동일하게 보장 ) otTcpSendByReference ( 을 통해 영향을 확장자를 포함하여, otTcpSendByExtension () .

세부
매개변수
[in] aEndpoint
연결을 위한 TCP 끝점입니다.
[in] aData
받는 포인터 otLinkedBuffer 재생 될 수있다.

otTcpSendReady

void(* otTcpSendReady)(otTcpEndpoint *aEndpoint)

이 콜백은 데이터가 송신 버퍼에 추가되면 피어가 일부 데이터를 ACK하면 전송을 위해 대기하는 것과 달리 일부 데이터가 지연 없이 즉시 전송될 것임을 애플리케이션에 알립니다.

를 호출 한 후 otTcpSendByReference () 또는 otTcpSendByExtension () 1, otTcpSendReady () 콜백 (연결이 이미 준비가되어있는 경우) 중 하나를 즉시 전화 또는 미래에 언젠가 (연결이 더 많은 데이터를 준비하게되면)이 보장된다.

이 콜백은 올바른 TCP 작업에 필요하지 않습니다. 지연 없이 전송할 수 있는 것보다 더 많은 데이터가 전송 버퍼에 추가되면 나중에 전송을 위해 단순히 큐에 대기됩니다. 이 콜백은 전송 버퍼에 추가된 데이터가 곧 전송될 것이라는 확신이 필요한 경우에만 사용해야 합니다(예: TCP는 이 데이터를 보내기 전에 수신자가 다른 데이터를 먼저 ACK할 때까지 기다리지 않습니다). 예를 들어, 전송 버퍼에 데이터 백로그를 생성하는 것보다 데이터를 삭제하려는 경우 이 콜백을 사용할 수 있습니다. 그러나 이것이 문제가 되지 않는 대부분의 애플리케이션의 경우 이 콜백을 전혀 사용하지 않을 것으로 예상됩니다.

세부
매개변수
[in] aEndpoint
연결에 대한 TCP 끝점입니다.

기능

otTcp중단

otError otTcpAbort(
  otTcpEndpoint *aEndpoint
)

이 TCP 끝점과 연결된 TCP 연결을 강제로 종료합니다.

이것은 바로 TCP가 다른 연결에 사용하기 위해 무료로 엔드 포인트 수와 송신을 비우고에 응용 프로그램에서 제공하는 데이터의 소유권 전송, 수신 버퍼 ) otTcpSendByReference를 ( 다시 응용 프로그램을 호출합니다. 수신 버퍼에 대한 TCP 끝점의 콜백 및 메모리는 TCP 끝점과 연결된 상태로 유지됩니다.

세부
매개변수
[in] aEndpoint
중단할 TCP 끝점을 나타내는 TCP 끝점 구조에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
TCP 끝점의 연결을 성공적으로 중단했습니다.
OT_ERROR_FAILED
TCP 끝점의 연결을 중단하지 못했습니다.

otTcp바인드

otError otTcpBind(
  otTcpEndpoint *aEndpoint,
  const otSockAddr *aSockName
)

TCP 끝점을 IP 주소 및 포트에 바인딩합니다.

세부
매개변수
[in] aEndpoint
바인딩할 TCP 끝점 구조에 대한 포인터입니다.
[in] aSockName
이 TCP 끝점을 바인딩할 주소 및 포트입니다.
반환 값
OT_ERROR_NONE
TCP 끝점을 성공적으로 바인딩했습니다.
OT_ERROR_FAILED
TCP 끝점을 바인딩하지 못했습니다.

otTcpCommit수신

otError otTcpCommitReceive(
  otTcpEndpoint *aEndpoint,
  size_t aNumBytes,
  uint32_t aFlags
)

응용 프로그램이 완료 처리가되는 TCP 스택 알립니다 aNumBytes 의 시작 부분에서 바이트의 데이터는 버퍼와 TCP 스택 필요하지에 그 바이트를 유지 계속 수신 버퍼 것을받을 수 있습니다.

세부
매개변수
[in] aEndpoint
데이터를 수신할 TCP 끝점을 나타내는 TCP 끝점 구조에 대한 포인터입니다.
[in] aNumBytes
소비된 바이트 수입니다.
[in] aFlags
이 작업에 대한 옵션을 지정하는 플래그입니다(아직 없음).
반환 값
OT_ERROR_NONE
수신 작업을 성공적으로 완료했습니다.
OT_ERROR_FAILED
수신 작업을 완료하지 못했습니다.

otTcpConnect

otError otTcpConnect(
  otTcpEndpoint *aEndpoint,
  const otSockAddr *aSockName,
  uint32_t aFlags
)

이 연결에 대한 원격 호스트 및 포트를 기록합니다.

기본적으로 TCP Fast Open이 사용됩니다. 이 기능은 단순히 원격 호스트 및 포트 및 TCP 연결 설정 핸드 셰이크 만에 첫 번째 호출에 발생하는 것을 기록하는 것이이 수단 otTcpSendByReference을 () . TCP 빠른 열기 명시 적으로 사용하지 않도록 설정할 수 있습니다 aFlags 는 TCP 연결 설정 악수를 즉시 시작되는 경우를.

세부
매개변수
[in] aEndpoint
연결할 TCP 끝점 구조에 대한 포인터입니다.
[in] aSockName
연결할 호스트의 IP 주소 및 포트입니다.
[in] aFlags
이 작업에 대한 옵션을 지정하는 플래그입니다(위의 열거 참조).
반환 값
OT_ERROR_NONE
작업을 성공적으로 완료했습니다.
OT_ERROR_FAILED
작업을 완료하지 못했습니다.

otTcpEndpoint 초기화 해제

otError otTcpEndpointDeinitialize(
  otTcpEndpoint *aEndpoint
)

이 TCP 끝점을 초기화 해제합니다.

이것은 OpenThread가 더 이상 이 TCP 끝점을 추적하지 않고 이 TCP 끝점에 대해 내부적으로 할당한 모든 리소스의 할당을 취소함을 의미합니다. 애플리케이션은 적절하다고 판단되는 경우 TCP 엔드포인트를 지원하는 메모리를 재사용할 수 있습니다.

이 라이브 TCP 연결에 해당하는 경우, 연결이 무례 종료 (에로 otTcpAbort () ). 애플리케이션이 TCP 종점 제공된 모든 리소스 (송신 버퍼에 대한 버퍼가 연결된 상기 메모리는, 수신 버퍼 aEndpoint 즉시 애플리케이션에 반환 구조 자체 등).

세부
매개변수
[in] aEndpoint
초기화 해제할 TCP 끝점 구조에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
TCP 끝점을 성공적으로 초기화 해제했습니다.
OT_ERROR_FAILED
TCP 끝점을 초기화하지 못했습니다.

otTcpEndpointGetContext

void * otTcpEndpointGetContext(
  otTcpEndpoint *aEndpoint
)

과 연관이 있었다 컨텍스트 포인터를 얻 aEndpoint 초기화시를.

세부
매개변수
[in] aEndpoint
컨텍스트를 가져올 TCP 끝점입니다.
보고
과 관련된 컨텍스트 포인터 aEndpoint .

otTcpEndpointGetInstance

otInstance * otTcpEndpointGetInstance(
  otTcpEndpoint *aEndpoint
)

얻와 관련 된 otInstance aEndpoint 초기화시.

세부
매개변수
[in] aEndpoint
인스턴스를 가져올 TCP 끝점입니다.
보고
과 관련된 otInstance 포인터 aEndpoint .

otTcpEndpoint초기화

otError otTcpEndpointInitialize(
  otInstance *aInstance,
  otTcpEndpoint *aEndpoint,
  otTcpEndpointInitializeArgs *aArgs
)

TCP 끝점을 초기화합니다.

이 함수를 호출하면 TCP 엔드 포인트 및 저장을 추적하고 내부 TCP 데이터를 검색 할 수 OpenThread 원인 aEndpoint . 애플리케이션은 직접 액세스 또는 필드 수정 자제해야 aEndpoint . 응용 프로그램이 백업 메모리 확보 할 필요가있는 경우 aEndpoint ,이 호출해야 otTcpEndpointDeinitialize을 () .

세부
매개변수
[in] aInstance
OpenThread 인스턴스에 대한 포인터입니다.
[in] aEndpoint
TCP 끝점 구조에 대한 포인터입니다.
[in] aArgs
인수 구조에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
TCP 끝점을 성공적으로 열었습니다.
OT_ERROR_FAILED
TCP 끝점을 열지 못했습니다.

otTcpGetLocalAddress

const otSockAddr * otTcpGetLocalAddress(
  const otTcpEndpoint *aEndpoint
)

TCP 끝점의 로컬 호스트 및 포트에 대한 포인터를 얻습니다.

이 소켓이 연결된 상태가 아니고 마지막으로 연결이 끊긴 후 바인딩되지 않은 경우 호스트 및 포트의 내용이 오래되지 않을 수 있습니다.

세부
매개변수
[in] aEndpoint
로컬 호스트 및 포트를 가져올 TCP 끝점입니다.
보고
의 로컬 호스트 및 포트 aEndpoint .

otTcpGetPeerAddress

const otSockAddr * otTcpGetPeerAddress(
  const otTcpEndpoint *aEndpoint
)

TCP 끝점의 피어 호스트 및 포트에 대한 포인터를 얻습니다.

이 소켓이 연결된 상태가 아니면 호스트 및 포트의 내용이 오래될 수 있습니다.

세부
매개변수
[in] aEndpoint
얻을 피어의 호스트 및 포트가 있는 TCP 끝점입니다.
보고
의 연결 피어의 호스트 및 포트 aEndpoint .

otTcp듣기

otError otTcpListen(
  otTcpListener *aListener,
  const otSockAddr *aSockName
)

지정된 IP 주소 및 포트와 일치하는 들어오는 TCP 연결이 이 TCP 수신기의 콜백을 트리거하도록 합니다.

세부
매개변수
[in] aListener
수신을 시작해야 하는 TCP 수신기 구조에 대한 포인터입니다.
[in] aSockName
들어오는 연결을 수신 대기할 주소 및 포트입니다.
반환 값
OT_ERROR_NONE
TCP 수신기에서 수신을 성공적으로 시작했습니다.
OT_ERROR_FAILED
TCP 수신기에서 수신 대기를 시작하지 못했습니다.

otTcpListener 초기화 해제

otError otTcpListenerDeinitialize(
  otTcpListener *aListener
)

이 TCP 수신기를 초기화 해제합니다.

이것은 OpenThread가 더 이상 이 TCP 수신기를 추적하지 않고 이 TCP 수신기에 대해 내부적으로 할당한 모든 리소스의 할당을 취소함을 의미합니다. 애플리케이션은 적절하다고 판단되는 경우 TCP 수신기를 지원하는 메모리를 재사용할 수 있습니다.

TCP 수신기가 현재 수신 중이면 수신을 중지합니다.

세부
매개변수
[in] aListener
초기화 해제할 TCP 수신기 구조에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
TCP 수신기를 성공적으로 초기화 해제했습니다.
OT_ERROR_FAILED
TCP 수신기를 초기화하지 못했습니다.

otTcpListenerGetContext

void * otTcpListenerGetContext(
  otTcpListener *aListener
)

과 연관이 있었다 컨텍스트 포인터를 얻 aListener 초기화시를.

세부
매개변수
[in] aListener
컨텍스트를 가져올 TCP 수신기입니다.
보고
과 관련된 컨텍스트 포인터 aListener .

otTcpListenerGetInstance

otInstance * otTcpListenerGetInstance(
  otTcpListener *aListener
)

얻와 관련 된 otInstance aListener 초기화시.

세부
매개변수
[in] aListener
인스턴스를 가져올 TCP 수신기입니다.
보고
과 관련된 otInstance 포인터 aListener .

otTcpListener초기화

otError otTcpListenerInitialize(
  otInstance *aInstance,
  otTcpListener *aListener,
  otTcpListenerInitializeArgs *aArgs
)

TCP 수신기를 초기화합니다.

이 함수를 호출하면 TCP 리스너 및 저장을 추적 내부 TCP 데이터를 검색하는 OpenThread 원인 aListener . 애플리케이션은 직접 액세스 또는 필드 수정 자제해야 aListener . 응용 프로그램이 메모리 백업 확보 할 필요가있는 경우 aListener ,이 호출해야 otTcpListenerDeinitialize을 () .

세부
매개변수
[in] aInstance
OpenThread 인스턴스에 대한 포인터입니다.
[in] aListener
TCP 수신기 구조에 대한 포인터입니다.
[in] aArgs
인수 구조에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
TCP 수신기를 성공적으로 열었습니다.
OT_ERROR_FAILED
TCP 수신기를 열지 못했습니다.

otTcpReceiveByReference

otError otTcpReceiveByReference(
  const otTcpEndpoint *aEndpoint,
  const otLinkedBuffer **aBuffer
)

현재 TCP 수신 버퍼에 있는 데이터를 참조하는 연결된 버퍼 체인을 애플리케이션에 제공합니다.

(가) "준비받을"때까지 연결된 버퍼 체인은 콜백은 다음 호출, 또는에 대한 다음 호출까지되는 유효 otTcpReceiveContiguify () 또는 otTcpCommitReceive () .

세부
매개변수
[in] aEndpoint
데이터를 수신할 TCP 끝점을 나타내는 TCP 끝점 구조에 대한 포인터입니다.
[out] aBuffer
현재 수신 버퍼에 있는 데이터를 참조하는 연결된 버퍼 체인에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
작업을 성공적으로 완료했습니다.
OT_ERROR_FAILED
작업을 완료하지 못했습니다.

otTcpReceiveContiguify

otError otTcpReceiveContiguify(
  otTcpEndpoint *aEndpoint
)

메모리에서 완전히 연속하도록 수신 버퍼를 재구성합니다.

이것은 선택 사항입니다. 애플리케이션은 단순히 호출하여 얻을 연결된 버퍼 체인 이송 할 수 otTcpReceiveByReference . 일부 응용 프로그램은 데이터 처리를 단순화하기 위해 수신 버퍼를 연속적으로 만들기 위해 이 함수를 호출할 수 있지만 수신 버퍼의 데이터를 재구성하는 데 CPU 시간이 소요됩니다.

세부
매개변수
[in] aEndpoint
재구성할 수신 버퍼가 있는 TCP 끝점에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
작업을 성공적으로 완료했습니다.
OT_ERROR_FAILED
작업을 완료하지 못했습니다.

otTcpSendByExtension

otError otTcpSendByExtension(
  otTcpEndpoint *aEndpoint,
  size_t aNumBytes,
  uint32_t aFlags
)

최종의 길이를 연장하여 송신 버퍼에 데이터를 추가 otLinkedBuffer 지정된 양만큼 송신 버퍼를.

송신 버퍼가 비어 있으면 작업이 실패합니다.

세부
매개변수
[in] aEndpoint
데이터를 보낼 TCP 끝점을 나타내는 TCP 끝점 구조에 대한 포인터입니다.
[in] aNumBytes
연결된 최종 버퍼의 길이를 확장할 바이트 수입니다.
[in] aFlags
이 작업에 대한 옵션을 지정하는 플래그입니다(위의 열거 참조).
반환 값
OT_ERROR_NONE
송신 버퍼에 데이터를 성공적으로 추가했습니다.
OT_ERROR_FAILED
송신 버퍼에 데이터를 추가하지 못했습니다.

otTcpSendByReference

otError otTcpSendByReference(
  otTcpEndpoint *aEndpoint,
  otLinkedBuffer *aBuffer,
  uint32_t aFlags
)

링크 된 버퍼에 의해 참조를 추가 데이터가 가리키는 aBuffer 송신 버퍼에.

이 함수를 성공적으로 호출하면 연결된 버퍼와 참조하는 데이터는 TCP 스택이 소유합니다. "send done" 콜백이 해당 개체의 소유권을 응용 프로그램에 반환할 때까지 응용 프로그램에서 수정해서는 안 됩니다. 이 함수의 이전 호출에 대한 "보내기 완료" 콜백이 아직 시작되지 않은 경우에도 이 함수를 호출하여 다른 연결된 버퍼를 보내기 대기열에 추가할 수 있습니다.

참고 aBuffer 체인되어서는 안된다; mNext 필드는 NULL이어야 합니다. 이 호출 직후에 추가 데이터가 추가되면 OT_TCP_SEND_MORE_TO_COME 플래그를 TCP 구현에 대한 힌트로 사용해야 합니다.

세부
매개변수
[in] aEndpoint
데이터를 보낼 TCP 끝점을 나타내는 TCP 끝점 구조에 대한 포인터입니다.
[in] aBuffer
송신 버퍼에 추가할 데이터를 참조하는 연결된 버퍼 체인에 대한 포인터입니다.
[in] aFlags
이 작업에 대한 옵션을 지정하는 플래그입니다(위의 열거 참조).
반환 값
OT_ERROR_NONE
전송 버퍼에 데이터를 성공적으로 추가했습니다.
OT_ERROR_FAILED
송신 버퍼에 데이터를 추가하지 못했습니다.

otTcpSendEndOfStream

otError otTcpSendEndOfStream(
  otTcpEndpoint *aEndpoint
)

이 TCP 끝점이 더 이상 데이터를 보내지 않을 것임을 연결 피어에게 알립니다.

애플리케이션에 연결 피어에 보낼 데이터가 더 이상 없을 때 사용해야 합니다. 이 연결의 경우 연결 피어에 대한 향후 읽기는 "스트림 끝" 상태가 되고 이 연결 끝점에 대한 향후 쓰기는 실패합니다.

"스트림 끝" 조건은 전송하기 위해 이전에 TCP 스택에 제공된 데이터가 연결 피어에 의해 수신된 후에만 적용됩니다.

세부
매개변수
[in] aEndpoint
종료할 TCP 끝점을 나타내는 TCP 끝점 구조에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
전송을 위해 "스트림 끝" 조건을 성공적으로 큐에 넣었습니다.
OT_ERROR_FAILED
전송을 위해 "스트림 끝" 조건을 대기열에 넣지 못했습니다.

otTcpStopListening

otError otTcpStopListening(
  otTcpListener *aListener
)

이 TCP 수신기가 들어오는 연결에 대한 수신을 중지하도록 합니다.

세부
매개변수
[in] aListener
수신을 중지해야 하는 TCP 수신기 구조에 대한 포인터입니다.
반환 값
OT_ERROR_NONE
TCP 수신기에서 수신을 성공적으로 중지했습니다.
OT_ERROR_FAILED
TCP 수신기에서 수신을 중지하지 못했습니다.

매크로

OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS 2599

약 3개 이하의 무선 홉을 통과하는 TCP 연결에 권장되는 버퍼 크기입니다.

메모리가 특히 제한된 플랫폼과 고대역폭이 필요하지 않은 상황에서는 더 작은 버퍼 크기를 수동으로 선택하는 것이 바람직할 수 있습니다.

OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS 4158

많은 무선 홉을 통과하는 TCP 연결에 권장되는 버퍼 크기입니다.

TCP 연결이 매우 많은 수(6개 이상)를 통과하는 경우 큰 버퍼 크기를 수동으로 선택하는 것이 좋습니다.