nl::Inet::TCPEndPoint

#include <src/inet/TCPEndPoint.h>

Các đối tượng của lớp này đại diện cho các điểm cuối truyền tải TCP.

Tóm tắt

Lớp Inet của Nest đóng gói các phương thức tương tác với các điểm cuối truyền tải TCP (ổ cắm SOCK_STREAM trên các hệ thống bắt nguồn từ Linux và BSD) hoặc các khối điều khiển giao thức LwIP TCP, vì hệ thống được định cấu hình tương ứng.

Tính kế thừa

Kế thừa từ: nl::Inet::EndPointBasis

Loại công khai

@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
Trạng thái động cơ bản của điểm cuối cơ bản.
OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Loại chức năng xử lý sự kiện lỗi chấp nhận kết nối.
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Loại chức năng xử lý sự kiện thiết lập kết nối.
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Loại chức năng xử lý sự kiện thiết lập kết nối.
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) typedef
void(*
Loại kết nối đã nhận được chức năng xử lý sự kiện.
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) typedef
void(*
Loại hàm xử lý sự kiện nhận dữ liệu.
OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len) typedef
void(*
Loại hàm xử lý sự kiện truyền dữ liệu.
OnPeerCloseFunct)(TCPEndPoint *endPoint) typedef
void(*
Loại chức năng xử lý sự kiện tiếp nhận nửa gần.
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) typedef
void(*
Loại chức năng xử lý tín hiệu của TCP SendIdle đã thay đổi.

Các thuộc tính công khai

OnAcceptError
Ủy quyền chức năng xử lý sự kiện chấp nhận kết nối của điểm cuối.
OnConnectComplete
Chức năng uỷ quyền xử lý sự kiện thiết lập kết nối của điểm cuối.
OnConnectionClosed
Tính năng uỷ quyền chức năng xử lý sự kiện đóng của điểm cuối.
OnConnectionReceived
Kết nối của điểm cuối sẽ nhận được uỷ quyền chức năng xử lý sự kiện.
OnDataReceived
Chức năng uỷ quyền xử lý sự kiện nhận tin nhắn văn bản của điểm cuối.
OnDataSent
Hàm uỷ quyền xử lý sự kiện truyền văn bản tin nhắn của điểm cuối.
OnPeerClose
Tính năng uỷ quyền chức năng xử lý sự kiện nhận được sự kiện được uỷ quyền ở một nửa điểm cuối.
OnTCPSendIdleChanged
Hàm uỷ quyền chức năng xử lý sự kiện của tín hiệu điểm cuối khi kênh gửi ở trạng thái rảnh của kết nối TCP thay đổi.
ReceiveEnabled
bool
Nút chuyển điều khiển cho biết ứng dụng có đang nhận dữ liệu hay không.
State
enum nl::Inet::TCPEndPoint::@10
Trạng thái động cơ bản của điểm cuối cơ bản.

Hàm công khai

Abort(void)
void
Đóng toàn bộ điểm cuối, nói cách khác là gửi gói RST.
AckReceive(uint16_t len)
Xác nhận đã nhận được nội dung tin nhắn.
Bind(IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
Liên kết điểm cuối với một địa chỉ IP của giao diện.
Close(void)
Nói cách khác, việc bắt đầu đóng hoàn toàn của TCP được kết thúc bằng cả thao tác gửi và nhận.
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
Bắt đầu kết nối TCP.
DisableKeepAlive(void)
Tắt tính năng "keep-alive" của TCP .
DisableReceive(void)
void
Tắt chức năng thu tín hiệu.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
Bật tính năng "keep-alive" của TCP .
EnableNoDelay(void)
BậtNoDelay.
EnableReceive(void)
void
Bật chức năng thu tín hiệu.
Free(void)
void
Bắt đầu (hoặc tiếp tục) đóng hoàn toàn TCP, bỏ qua lỗi.
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
Trích xuất địa chỉ IP và cổng TCP của điểm cuối cục bộ.
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
Trích xuất địa chỉ IP và cổng TCP của điểm cuối từ xa.
IsConnected(void) const
bool
Trích xuất xem kết nối TCP đã được thiết lập hay chưa.
Listen(uint16_t backlog)
Chuẩn bị điểm cuối để nhận thông báo TCP.
LogId(void)
uint16_t
Lấy giá trị nhận dạng cho điểm cuối.
MarkActive(void)
void
Nói cách khác, hãy ghi chú hoạt động là đặt lại đồng hồ hẹn giờ ở trạng thái rảnh.
PendingReceiveLength(void)
uint32_t
Trích xuất độ dài của dữ liệu nhận chưa được xác nhận.
PendingSendLength(void)
uint32_t
Trích xuất độ dài của dữ liệu đang chờ lần truyền đầu tiên.
PutBackReceivedData(Weave::System::PacketBuffer *data)
Đẩy nội dung tin nhắn trở lại đầu hàng đợi nhận.
Send(Weave::System::PacketBuffer *data, bool push)
Gửi nội dung tin nhắn trên kết nối TCP.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Đặt thời gian chờ để Kết nối thành công hoặc trả về lỗi.
SetUserTimeout(uint32_t userTimeoutMillis)
Đặt tùy chọn ổ cắm TCP_USER_TIMEOUT.
Shutdown(void)
Nói cách khác, bắt đầu đóng một nửa của TCP, kết thúc bằng việc gửi.

Loại công khai

@10

 @10

Trạng thái động cơ bản của điểm cuối cơ bản.

Các đối tượng được khởi tạo trong giai đoạn "sẵn sàng" trạng thái, chuyển sang các trạng thái tiếp theo tương ứng với việc đơn giản hoá các trạng thái của máy trạng thái truyền tải TCP.

Lưu ý: Bản liệt kê trạng thái kBasisState_Closed được liên kết với kState_Ready vì các lý do trước đây liên quan đến khả năng tương thích nhị phân. kState_Closed hiện có tồn tại để xác định riêng biệt sự khác biệt giữa "chưa mở" và "hiện mới mở trước đó đã đóng" đã tồn tại trước đây ở trạng thái kState_ReadykState_Closed.

Thuộc tính
kState_Bound

Điểm cuối bị ràng buộc nhưng không lắng nghe.

kState_Closed

Đã đóng điểm cuối, sẵn sàng phát hành.

kState_Closing

Điểm cuối đóng theo hai chiều.

kState_Connected

Thiết bị đầu cuối đã kết nối, sẵn sàng để kết nối tx/rx.

kState_Connecting

Điểm cuối đang cố gắng kết nối.

kState_Listening

Điểm cuối nhận kết nối.

kState_Ready

Đã khởi tạo điểm cuối nhưng chưa liên kết.

kState_ReceiveShutdown

Điểm cuối đã phản hồi gần đến một nửa.

kState_SendShutdown

Điểm cuối đã bắt đầu đóng một nửa.

OnAcceptErrorFunct

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

Loại chức năng xử lý sự kiện lỗi chấp nhận kết nối.

Cung cấp hàm thuộc loại này cho thành viên uỷ quyền OnAcceptError để xử lý các sự kiện lỗi chấp nhận kết nối trên endPoint. Đối số err cung cấp thông tin chi tiết cụ thể về loại lỗi.

Chi tiết
Tham số
[in] endPoint
Điểm cuối TCP được liên kết với sự kiện.
[in] err
Nguyên nhân lỗi.

OnConnectCompleteFunct

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

Loại chức năng xử lý sự kiện thiết lập kết nối.

Cung cấp hàm thuộc loại này cho thành viên uỷ quyền OnConnectComplete để xử lý các sự kiện thiết lập kết nối trên endPoint. Đối số err phân biệt kết nối thành công với kết nối không thành công.

Chi tiết
Tham số
[in] endPoint
Điểm cuối TCP được liên kết với sự kiện.
[in] err
INET_NO_ERROR nếu thành công, nếu không sẽ thêm một mã khác.

OnConnectionClosedFunct

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

Loại chức năng xử lý sự kiện thiết lập kết nối.

Cung cấp một hàm thuộc loại này cho thành viên uỷ quyền của OnConnectionClosed để xử lý các sự kiện chấm dứt kết nối trên endPoint. Đối số err phân biệt trường hợp chấm dứt thành công với không thành công.

Chi tiết
Tham số
[in] endPoint
Điểm cuối TCP được liên kết với sự kiện.
[in] err
INET_NO_ERROR nếu thành công, nếu không sẽ thêm một mã khác.

OnConnectionReceivedFunct

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

Loại kết nối đã nhận được chức năng xử lý sự kiện.

Cung cấp hàm thuộc loại này cho thành viên uỷ quyền OnConnectionReceived để xử lý các sự kiện tiếp nhận kết nối trên listeningEndPoint. Điểm cuối mới nhận được conEndPoint nằm tại địa chỉ IP peerAddr và cổng TCP peerPort.

Chi tiết
Tham số
[in] listeningEndPoint
Điểm cuối TCP đang nghe.
[in] conEndPoint
Điểm cuối TCP mới nhận được.
[in] peerAddr
Địa chỉ IP của ứng dụng ngang hàng từ xa.
[in] peerPort
Cổng TCP của ứng dụng ngang hàng từ xa.

OnDataReceivedFunct

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

Loại hàm xử lý sự kiện nhận dữ liệu.

Cung cấp hàm thuộc loại này cho thành viên được uỷ quyền OnDataReceived để xử lý các sự kiện nhận dữ liệu trên endPoint, trong đó data là nội dung thông báo đã nhận được.

Chi tiết
Tham số
[in] endPoint
Điểm cuối TCP được liên kết với sự kiện.
[in] data
Dữ liệu đã nhận được.

Trình xử lý sự kiện nhận dữ liệu phải xác nhận dữ liệu được xử lý bằng phương thức AckReceive. Phương thức Free trên vùng đệm dữ liệu cũng phải được gọi trừ phi sử dụng PutBackReceivedData.

OnDataSentFunct

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

Loại hàm xử lý sự kiện truyền dữ liệu.

Cung cấp hàm thuộc loại này cho thành phần uỷ quyền OnDataSent để xử lý các sự kiện truyền dữ liệu trên endPoint, trong đó len là độ dài của văn bản thông báo được thêm vào cửa sổ truyền tải TCP, đủ điều kiện để gửi theo ngăn xếp mạng cơ bản.

Chi tiết
Tham số
[in] endPoint
Điểm cuối TCP được liên kết với sự kiện.
[in] len
Số byte được thêm vào cửa sổ truyền.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

Loại chức năng xử lý sự kiện tiếp nhận nửa gần.

Cung cấp một hàm thuộc loại này cho thành viên uỷ quyền của OnPeerClose để xử lý các sự kiện chấm dứt kết nối trên endPoint.

Chi tiết
Tham số
[in] endPoint
Điểm cuối TCP được liên kết với sự kiện.

OnTCPSendIdleChangedFunct

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

Loại chức năng xử lý tín hiệu của TCP SendIdle đã thay đổi.

Cung cấp hàm thuộc loại này cho thành phần uỷ quyền OnTCPSendIdleChanged để xử lý sự kiện kênh gửi của TCPEndPoint thay đổi trạng thái giữa trạng thái rảnh và không rảnh.

Chi tiết
Tham số
[in] endPoint
Điểm cuối TCP được liên kết với sự kiện.
[in] isIdle
"True" nếu kênh gửi của điểm cuối TCP là Không hoạt động, nếu không thì là false.

Các thuộc tính công khai

OnAcceptError

OnAcceptErrorFunct OnAcceptError

Ủy quyền chức năng xử lý sự kiện chấp nhận kết nối của điểm cuối.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

Chức năng uỷ quyền xử lý sự kiện thiết lập kết nối của điểm cuối.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

Tính năng uỷ quyền chức năng xử lý sự kiện đóng của điểm cuối.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

Kết nối của điểm cuối sẽ nhận được uỷ quyền chức năng xử lý sự kiện.

OnDataReceived

OnDataReceivedFunct OnDataReceived

Chức năng uỷ quyền xử lý sự kiện nhận tin nhắn văn bản của điểm cuối.

OnDataSent

OnDataSentFunct OnDataSent

Hàm uỷ quyền xử lý sự kiện truyền văn bản tin nhắn của điểm cuối.

OnPeerClose

OnPeerCloseFunct OnPeerClose

Tính năng uỷ quyền chức năng xử lý sự kiện nhận được sự kiện được uỷ quyền ở một nửa điểm cuối.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

Hàm uỷ quyền chức năng xử lý sự kiện của tín hiệu điểm cuối khi kênh gửi ở trạng thái rảnh của kết nối TCP thay đổi.

Tính năng này được các lớp trên sử dụng để thực hiện các hành động phù hợp dựa trên việc dữ liệu đã gửi có được phân phối một cách đáng tin cậy đến ứng dụng ngang hàng hay không.

ReceiveEnabled

bool ReceiveEnabled

Nút chuyển điều khiển cho biết ứng dụng có đang nhận dữ liệu hay không.

Tiểu bang

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

Trạng thái động cơ bản của điểm cuối cơ bản.

Các đối tượng được khởi tạo trong giai đoạn "sẵn sàng" trạng thái, chuyển sang các trạng thái tiếp theo tương ứng với việc đơn giản hoá các trạng thái của máy trạng thái truyền tải TCP.

Lưu ý: Bản liệt kê trạng thái kBasisState_Closed được liên kết với kState_Ready vì các lý do trước đây liên quan đến khả năng tương thích nhị phân. kState_Closed hiện có tồn tại để xác định riêng biệt sự khác biệt giữa "chưa mở" và "hiện mới mở trước đó đã đóng" đã tồn tại trước đây ở trạng thái kState_ReadykState_Closed.

Hàm công khai

Hủy

void Abort(
  void
)

Đóng toàn bộ điểm cuối, nói cách khác là gửi gói RST.

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

Xác nhận đã nhận được nội dung tin nhắn.

Hãy sử dụng phương thức này để xác nhận việc nhận được toàn bộ hoặc một phần dữ liệu nhận được. Ngữ nghĩa hoạt động là không xác định nếu len lớn hơn tổng dữ liệu đã nhận chưa xác nhận chưa xác nhận.

Chi tiết
Tham số
[in] len
số byte cần xác nhận.
Giá trị trả về
INET_NO_ERROR
thành công: xác nhận tiếp nhận.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.
INET_ERROR_CONNECTION_ABORTED
Kết nối TCP không còn mở nữa.

Đóng gáy

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

Liên kết điểm cuối với một địa chỉ IP của giao diện.

Liên kết điểm cuối với địa chỉ IP của giao diện mạng đã chỉ định.

Chi tiết
Tham số
[in] addrType
phiên bản giao thức của địa chỉ IP
[in] addr
địa chỉ IP (phải là một địa chỉ giao diện)
[in] port
cổng TCP
[in] reuseAddr
tuỳ chọn chia sẻ liên kết với các điểm cuối khác
Giá trị trả về
INET_NO_ERROR
thành công: điểm cuối liên kết với địa chỉ
INET_ERROR_INCORRECT_STATE
điểm cuối đã được liên kết trước đó
INET_NO_MEMORY
không đủ bộ nhớ cho điểm cuối
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType không khớp với IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrTypekIPAddressType_Any hoặc loại addr không bằng addrType.
other
lỗi hệ thống hoặc nền tảng khác

Trên LwIP, bạn không được gọi phương thức này khi đã thu nạp khoá ngăn xếp LwIP.

Đóng

INET_ERROR Close(
  void
)

Nói cách khác, việc bắt đầu đóng hoàn toàn của TCP được kết thúc bằng cả thao tác gửi và nhận.

Chi tiết
Giá trị trả về
INET_NO_ERROR
thành công: địa chỉ và cổng đã được trích xuất.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.
other
lỗi hệ thống hoặc nền tảng khác

Kết nối

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

Bắt đầu kết nối 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.

Chi tiết
Tham số
[in] addr
địa chỉ IP đích
[in] port
cổng TCP đích
[in] intf
chỉ báo giao diện mạng không bắt buộc
Giá trị trả về
INET_NO_ERROR
thành công: msg đã được đưa vào hàng đợi để truyền.
INET_ERROR_NOT_IMPLEMENTED
chưa hoàn tất triển khai hệ thống.
INET_ERROR_WRONG_ADDRESS_TYPE
địa chỉ đích và địa chỉ giao diện ràng buộc không có phiên bản giao thức hoặc loại địa chỉ trùng khớp, hoặc địa chỉ đích là địa chỉ liên kết cục bộ IPv6 và intf chưa được chỉ định.
other
lỗi hệ thống hoặc nền tảng khác

DisableKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

Tắt tính năng "keep-alive" của TCP .

TCPEndPoint::DisableKeepAlive.

Tắt đầu dò duy trì hoạt động của TCP trên kết nối TCP đã liên kết.

Chi tiết
Giá trị trả về
INET_NO_ERROR
thành công: địa chỉ và cổng đã được trích xuất.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.
INET_ERROR_CONNECTION_ABORTED
Kết nối TCP không còn mở nữa.
INET_ERROR_NOT_IMPLEMENTED
chưa hoàn tất triển khai hệ thống.
other
lỗi hệ thống hoặc nền tảng khác

Lưu ý: Phương thức này chỉ có thể được gọi khi điểm cuối ở một trong các trạng thái đã kết nối. Phương thức này không có tác dụng gì nếu tính năng giữ lại chưa được bật trên điểm cuối.

DisableReceive

void DisableReceive(
  void
)

Tắt chức năng thu tín hiệu.

Tắt tất cả trình xử lý sự kiện. Dữ liệu gửi đến điểm cuối vô hiệu hoá chức năng nhận sẽ được xác nhận cho đến khi hết cửa sổ nhận.

EnableKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

Bật tính năng "keep-alive" của TCP .

TCPEndPoint::EnableKeepAlive.

Bắt đầu tự động truyền yêu cầu "keep-alive" của TCP đầu dò phân đoạn interval giây một lần. Kết nối sẽ tự động huỷ sau khi nhận được phản hồi tiêu cực hoặc sau khi gửi timeoutCount phân đoạn thăm dò mà không nhận được phản hồi tích cực.

Chi tiết
Tham số
[in] interval
(tính bằng giây) giữa các lần yêu cầu thăm dò.
[in] timeoutCount
số đầu dò cần gửi trước khi hết thời gian chờ.
Giá trị trả về
INET_NO_ERROR
thành công: địa chỉ và cổng đã được trích xuất.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.
INET_ERROR_CONNECTION_ABORTED
Kết nối TCP không còn mở nữa.
INET_ERROR_NOT_IMPLEMENTED
chưa hoàn tất triển khai hệ thống.
other
lỗi hệ thống hoặc nền tảng khác

Xem RFC 1122, phần 4.2.3.6 để biết chi tiết về thông số kỹ thuật.

Bật đầu dò duy trì hoạt động TCP trên kết nối TCP đã liên kết.

Lưu ý: Phương thức này chỉ có thể được gọi khi điểm cuối ở một trong các trạng thái đã kết nối. Phương thức này có thể được gọi nhiều lần để điều chỉnh khoảng thời gian duy trì hoạt động hoặc số lượng thời gian chờ.

Chi tiết
Tham số
interval
Khoảng thời gian (tính bằng giây) giữa các đầu dò duy trì hoạt động. Giá trị này cũng kiểm soát thời gian từ khi gói dữ liệu được gửi gần đây nhất đến thời điểm truyền của đầu dò duy trì hoạt động đầu tiên.
timeoutCount
Số lượng tối đa các đầu dò không được xác nhận trước khi kết nối sẽ được coi là không thành công.

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

BậtNoDelay.

TCPEndPoint::EnableNoDelay.

Tắt thuật toán lưu vào bộ đệm nagle trong TCP bằng cách đặt các tuỳ chọn ổ cắm TCP_NOHO.

EnableReceive

void EnableReceive(
  void
)

Bật chức năng thu tín hiệu.

Bật tất cả trình xử lý sự kiện. Dữ liệu gửi đến điểm cuối vô hiệu hoá chức năng nhận sẽ được xác nhận cho đến khi hết cửa sổ nhận.

Miễn phí

void Free(
  void
)

Bắt đầu (hoặc tiếp tục) đóng hoàn toàn TCP, bỏ qua lỗi.

Đối tượng được trả về nhóm miễn phí và tất cả tham chiếu còn lại của người dùng sau đó sẽ không hợp lệ.

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

Trích xuất địa chỉ IP và cổng TCP của điểm cuối cục bộ.

Đừng sử dụng các giá trị con trỏ NULL cho một trong hai đối số.

Chi tiết
Tham số
[out] retAddr
Địa chỉ IP của điểm cuối cục bộ.
[out] retPort
cổng TCP của điểm cuối cục bộ.
Giá trị trả về
INET_NO_ERROR
thành công: địa chỉ và cổng đã được trích xuất.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.
INET_ERROR_CONNECTION_ABORTED
Kết nối TCP không còn mở nữa.

GetPeerInfo

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

Trích xuất địa chỉ IP và cổng TCP của điểm cuối từ xa.

Đừng sử dụng các giá trị con trỏ NULL cho một trong hai đối số.

Chi tiết
Tham số
[out] retAddr
Địa chỉ IP của điểm cuối từ xa.
[out] retPort
cổng TCP của điểm cuối từ xa.
Giá trị trả về
INET_NO_ERROR
thành công: địa chỉ và cổng đã được trích xuất.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.
INET_ERROR_CONNECTION_ABORTED
Kết nối TCP không còn mở nữa.

IsConnected

bool IsConnected(
  void
) const 

Trích xuất xem kết nối TCP đã được thiết lập hay chưa.

Lắng nghe

INET_ERROR Listen(
  uint16_t backlog
)

Chuẩn bị điểm cuối để nhận thông báo TCP.

Nếu State đã là kState_Listening thì không có thao tác nào được thực hiện, nếu không thì State sẽ được đặt thành kState_Listening và điểm cuối được chuẩn bị để nhận thông báo TCP, theo ngữ nghĩa của nền tảng.

Chi tiết
Tham số
[in] backlog
độ sâu tối đa của hàng đợi chấp nhận kết nối
Giá trị trả về
INET_NO_ERROR
thành công: điểm cuối đã sẵn sàng nhận thông báo.
INET_ERROR_INCORRECT_STATE
thiết bị đầu cuối đang lắng nghe.

Trên một số nền tảng, đối số backlog không được dùng (độ sâu của hàng đợi là cố định; mỗi lần chỉ có thể chấp nhận một kết nối).

Trên các hệ thống LwIP, bạn không được gọi phương thức này khi đã thu nạp được khoá ngăn xếp LwIP

LogId

uint16_t LogId(
  void
)

Lấy giá trị nhận dạng cho điểm cuối.

Chi tiết
Trả về
Trả về giá trị nhận dạng duy nhất không rõ ràng cho nhật ký sử dụng.

MarkActive

void MarkActive(
  void
)

Nói cách khác, hãy ghi chú hoạt động là đặt lại đồng hồ hẹn giờ ở trạng thái rảnh.

Đặt lại đồng hồ hẹn giờ ở trạng thái rảnh về 0.

PendingReceiveLength

uint32_t PendingReceiveLength(
  void
)

Trích xuất độ dài của dữ liệu nhận chưa được xác nhận.

Chi tiết
Trả về
Số byte trong hàng đợi nhận chưa được xác nhận bằng AckReceive(uint16_t len).

PendingSendLength

uint32_t PendingSendLength(
  void
)

Trích xuất độ dài của dữ liệu đang chờ lần truyền đầu tiên.

Chi tiết
Trả về
Số byte chưa được truyền trong hàng đợi truyền.

PutBackReceivedData

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

Đẩy nội dung tin nhắn trở lại đầu hàng đợi nhận.

Chỉ trình xử lý sự kiện nhận dữ liệu mới có thể gọi phương thức này để đưa một phần dữ liệu chưa được xác nhận trở lại hàng đợi nhận. Không xác định được ngữ nghĩa hoạt động nếu phương thức gọi nằm ngoài phạm vi của trình xử lý sự kiện nhận dữ liệu, data không phải là Weave::System::PacketBuffer được cung cấp cho trình xử lý hoặc data không chứa phần chưa được xác nhận còn lại sau khi các byte được xác nhận bằng lệnh gọi trước đến phương thức AckReceive(uint16_t len).

Chi tiết
Tham số
[out] data
Văn bản tin nhắn cần đẩy.
Giá trị trả về
INET_NO_ERROR
thành công: xác nhận tiếp nhận.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.

Gửi

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

Gửi nội dung tin nhắn trên kết nối TCP.

Phương thức Weave::System::PacketBuffer::Free được gọi trên đối số data bất kể quá trình truyền có thành công hay không.

Chi tiết
Tham số
[out] data
Nội dung tin nhắn cần gửi.
[out] push
Nếu là true, hãy gửi ngay lập tức, nếu không thì hãy thêm vào hàng đợi.
Giá trị trả về
INET_NO_ERROR
thành công: địa chỉ và cổng đã được trích xuất.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Đặt thời gian chờ để Kết nối thành công hoặc trả về lỗi.

Chi tiết
Tham số
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

Đặt tùy chọn ổ cắm TCP_USER_TIMEOUT.

TCPEndPoint::SetUserThời gian chờ.

Khi giá trị lớn hơn 0, giá trị này chỉ định khoảng thời gian tối đa (tính bằng mili giây) mà dữ liệu được truyền có thể vẫn chưa được xác nhận trước khi TCP buộc phải đóng kết nối tương ứng. Nếu giá trị tuỳ chọn được chỉ định là 0, thì TCP sẽ sử dụng giá trị mặc định của hệ thống. Hãy xem RFC 5482 để biết thêm chi tiết.

Chi tiết
Tham số
[in] userTimeoutMillis
Giá trị thời gian chờ của người dùng tcp tính bằng mili giây.
Giá trị trả về
INET_NO_ERROR
thành công: địa chỉ và cổng đã được trích xuất.
INET_ERROR_NOT_IMPLEMENTED
chưa hoàn tất triển khai hệ thống.
other
lỗi hệ thống hoặc nền tảng khác

Đặt tuỳ chọn cổng thời gian chờ của người dùng TCP.

Khi giá trị lớn hơn 0, giá trị này chỉ định khoảng thời gian tối đa (tính bằng mili giây) mà dữ liệu được truyền có thể vẫn chưa được xác nhận trước khi TCP buộc phải đóng kết nối tương ứng. Nếu giá trị tuỳ chọn được chỉ định là 0, thì TCP sẽ sử dụng giá trị mặc định của hệ thống. Hãy xem RFC 5482 để biết thêm chi tiết.

Lưu ý: Phương thức này chỉ có thể được gọi khi điểm cuối ở một trong các trạng thái đã kết nối. Phương thức này có thể được gọi nhiều lần để điều chỉnh khoảng thời gian duy trì hoạt động hoặc số lượng thời gian chờ.

Tắt

INET_ERROR Shutdown(
  void
)

Nói cách khác, bắt đầu đóng một nửa của TCP, kết thúc bằng việc gửi.

Chi tiết
Giá trị trả về
INET_NO_ERROR
thành công: địa chỉ và cổng đã được trích xuất.
INET_ERROR_INCORRECT_STATE
Chưa thiết lập kết nối TCP.
other
lỗi hệ thống hoặc nền tảng khác