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 Nest Inet đó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 kiểm soát giao thức LwIP TCP, vì hệ thống được định cấu hình phù hợp.

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 hàm 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 hàm xử lý sự kiện thiết lập kết nối.
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Loại hàm 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(*
Hàm xử lý sự kiện cho loại kết nối đã nhận.
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) typedef
void(*
Loại hàm xử lý sự kiện tiếp 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 hàm xử lý sự kiện tiếp nhận nửa đóng.
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) typedef
void(*
Loại hàm xử lý tín hiệu của TCP SendIdle đã thay đổi.

Thuộc tính công khai

OnAcceptError
Phương thức uỷ quyền hàm xử lý sự kiện chấp nhận kết nối của điểm cuối.
OnConnectComplete
Tính năng uỷ quyền hàm 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 hàm 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 sự uỷ quyền của hàm xử lý sự kiện.
OnDataReceived
Phương thức uỷ quyền hàm xử lý sự kiện tiếp nhận văn bản tin nhắn của điểm cuối.
OnDataSent
Phương thức uỷ quyền hàm xử lý sự kiện truyền văn bản tin nhắn của điểm cuối.
OnPeerClose
Phương thức uỷ quyền hàm xử lý sự kiện nhận một nửa của điểm cuối.
OnTCPSendIdleChanged
Hàm xử lý sự kiện uỷ quyền của điểm cuối báo hiệu điểm cuối khi kênh gửi của kết nối TCP ở trạng thái rảnh thay đổi.
ReceiveEnabled
bool
Nút điều khiển cho biết liệu ứ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 điểm cuối một cách tự động, nói cách khác là gửi các gói RST.
AckReceive(uint16_t len)
Xác nhận việc nhận 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, hãy bắt đầu giao thức TCP hoàn toàn, 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 tuỳ chọn "keep-alive" của TCP.
DisableReceive(void)
void
Tắt tính năng thu tín hiệu.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
Bật tuỳ chọn "keep-alive" (duy trì) của TCP.
EnableNoDelay(void)
BậtNoDelay.
EnableReceive(void)
void
Bật tính 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
Ghi chú hoạt động, nói cách khác 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 không đượ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 văn bản tin nhắn trở lại đầu hàng đợi nhận.
Send(Weave::System::PacketBuffer *data, bool push)
Gửi tin nhắn văn bản qua kết nối TCP.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Đặt thời gian chờ để Connect thành công hoặc trả về lỗi.
SetUserTimeout(uint32_t userTimeoutMillis)
Đặt tuỳ chọn ổ cắm TCP_USER_TIMEOUT.
Shutdown(void)
Bắt đầu TCP một nửa, nói cách khác là đã hoàn tất 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 ở trạng thái "sẵn sàng", tiếp tục 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ảng liệt kê trạng thái kBasisState_Closed được ánh xạ tới kState_Ready vì các lý do trước đây về khả năng tương thích với tệp nhị phân. kState_Closed hiện có tồn tại để xác định riêng sự khác biệt giữa "chưa mở" và "trước đây đã mở hiện đã đóng" từng có ở trạng thái kState_ReadykState_Closed.

Thuộc tính
kState_Bound

Thiết bị đầu cuối đã bị ràng buộc nhưng không lắng nghe.

kState_Closed

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

kState_Closing

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

kState_Connected

Điểm cuối đã kết nối, sẵn sàng cho tx/rx.

kState_Connecting

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

kState_Listening

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

kState_Ready

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

kState_ReceiveShutdown

Điểm cuối đã phản hồi trạng thái đóng một nửa.

kState_SendShutdown

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

OnAcceptErrorFunct

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

Loại hàm xử lý sự kiện lỗi chấp nhận kết nối.

Cung cấp một chức năng 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.

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối TCP đã liên kết với sự kiện.
[in] err
Lý do lỗi.

OnConnectCompleteFunct

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

Loại hàm xử lý sự kiện thiết lập kết nối.

Cung cấp một chức năng 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 lỗi.

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối TCP đã liên kết với sự kiện.
[in] err
INET_NO_ERROR nếu thành công, hãy nhập một mã khác.

OnConnectionClosedFunct

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

Loại hàm xử lý sự kiện thiết lập kết nối.

Cung cấp một chức năng thuộc loại này cho thành viên uỷ quyền 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 các trường hợp chấm dứt thành công với các trường hợp không thành công.

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối TCP đã liên kết với sự kiện.
[in] err
INET_NO_ERROR nếu thành công, hãy nhập một mã khác.

OnConnectionReceivedFunct

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

Hàm xử lý sự kiện cho loại kết nối đã nhận.

Cung cấp một chức năng 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.

Thông tin chi tiết
Các tham số
[in] listeningEndPoint
Điểm cuối TCP 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 tiếp nhận dữ liệu.

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

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối TCP đã liên kết với sự kiện.
[in] data
Đã nhận được dữ liệu.

Trình xử lý sự kiện tiếp 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 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 một 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 TCP, cửa sổ này đủ điều kiện để gửi qua ngăn xếp mạng cơ bản.

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối TCP đã liên kết với sự kiện.
[in] len
Số byte đã thêm vào cửa sổ truyền.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

Loại hàm xử lý sự kiện tiếp nhận nửa đóng.

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

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối TCP đã liên kết với sự kiện.

OnTCPSendIdleChangedFunct

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

Loại hàm xử lý tín hiệu của TCP SendIdle đã thay đổi.

Cung cấp một chức năng thuộc loại này cho thành viê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 không hoạt động và không rảnh.

Thông tin chi tiết
Các tham số
[in] endPoint
Điểm cuối TCP đã 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.

Thuộc tính công khai

OnAcceptError

OnAcceptErrorFunct OnAcceptError

Phương thức uỷ quyền hàm xử lý sự kiện chấp nhận kết nối của điểm cuối.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

Tính năng uỷ quyền hàm 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 hàm 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 sự uỷ quyền của hàm xử lý sự kiện.

OnDataReceived

OnDataReceivedFunct OnDataReceived

Phương thức uỷ quyền hàm xử lý sự kiện tiếp nhận văn bản tin nhắn của điểm cuối.

OnDataSent

OnDataSentFunct OnDataSent

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

OnPeerClose

OnPeerCloseFunct OnPeerClose

Phương thức uỷ quyền hàm xử lý sự kiện nhận một nửa của điểm cuối.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

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

Tính năng này được các lớp trên sử dụng để thực hiện những 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 cho mạng ngang hàng hay không.

ReceiveEnabled

bool ReceiveEnabled

Nút điều khiển cho biết liệu ứ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 ở trạng thái "sẵn sàng", tiếp tục 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ảng liệt kê trạng thái kBasisState_Closed được ánh xạ tới kState_Ready vì các lý do trước đây về khả năng tương thích với tệp nhị phân. kState_Closed hiện có tồn tại để xác định riêng sự khác biệt giữa "chưa mở" và "trước đây đã mở hiện đã đóng" từng có ở trạng thái kState_ReadykState_Closed.

Hàm công khai

Hủy

void Abort(
  void
)

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

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

Xác nhận việc nhận nội dung tin nhắn.

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

Thông tin chi tiết
Các 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 thông báo xác 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.

Liên kết

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.

Thông tin chi tiết
Các tham số
[in] addrType
phiên bản giao thức của địa chỉ IP
[in] addr
địa chỉ IP (phải là địa chỉ giao diện)
[in] port
cổng TCP
[in] reuseAddr
lựa 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, không được gọi phương thức này khi đã có khoá ngăn xếp LwIP.

Đóng

INET_ERROR Close(
  void
)

Nói cách khác, hãy bắt đầu giao thức TCP hoàn toàn, cả gửi và nhận.

Thông tin chi tiết
Giá trị trả về
INET_NO_ERROR
thành công: đã trích xuất địa chỉ và cổng.
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.

Thông tin chi tiết
Các tham số
[in] addr
địa chỉ IP đích
[in] port
cổng TCP đích
[in] intf
chỉ báo giao diện mạng tuỳ chọn
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 quá trình 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ỉ phù hợ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 tuỳ chọn "keep-alive" của TCP.

TCPEndPoint::DisableKeepAlive.

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

Thông tin chi tiết
Giá trị trả về
INET_NO_ERROR
thành công: đã trích xuất địa chỉ và cổng.
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 quá trình 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 chưa bật tính năng lưu giữ trên điểm cuối.

DisableReceive

void DisableReceive(
  void
)

Tắt tính năng thu tín hiệu.

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

EnableKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

Bật tuỳ chọn "keep-alive" (duy trì) của TCP.

TCPEndPoint::EnableKeepAlive.

Bắt đầu tự động truyền các phân đoạn đầu dò "giữ hoạt động" của TCP interval giây một lần. Quá trình 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 các phân đoạn thăm dò timeoutCount mà không nhận được phản hồi tích cực.

Thông tin chi tiết
Các tham số
[in] interval
thời gian tính bằng giây giữa các 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: đã trích xuất địa chỉ và cổng.
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 quá trình triển khai hệ thống.
other
lỗi hệ thống hoặc nền tảng khác

Xem RFC 1122, mục 4.2.3.6 để biết chi tiết thông số kỹ thuật.

Bật đầu dò duy trì hoạt động của TCP trên kết nối TCP được 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ần hết thời gian chờ.

Thông tin chi tiết
Các tham số
interval
Khoảng thời gian (tính bằng giây) giữa các đầu dò được bảo vệ. Giá trị này cũng kiểm soát thời gian giữa thời điểm gửi gói dữ liệu gần đây nhất đến khi truyền đầu dò duy trì hoạt động đầu tiên.
timeoutCount
Số lượng đầu dò chưa được xác nhận tối đa trước khi kết nối đượ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 tuỳ chọn ổ cắm TCP_NOPAUSE.

EnableReceive

void EnableReceive(
  void
)

Bật tính năng thu tín hiệu.

Cho phép tất cả trình xử lý sự kiện. Dữ liệu được gửi đến một điểm cuối vô hiệu hoá khả năng thu sẽ được xác nhận cho đến khi hết khoảng thời gian 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 này được trả về nhóm tự do và tất cả các tệp tham chiếu người dùng còn lại sau đó đều 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 giá trị con trỏ NULL cho cả hai đối số.

Thông tin chi tiết
Các 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: đã trích xuất địa chỉ và cổng.
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 giá trị con trỏ NULL cho cả hai đối số.

Thông tin chi tiết
Các 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: đã trích xuất địa chỉ và cổng.
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.

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, State sẽ được đặt thành kState_Listening và điểm cuối được chuẩn bị để nhận các thông báo TCP, theo ngữ nghĩa của nền tảng.

Thông tin chi tiết
Các 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 tin nhắn.
INET_ERROR_INCORRECT_STATE
điểm cuối đang nghe.

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

Trên các hệ thống LwIP, không được gọi phương thức này khi đã 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.

Thông tin chi tiết
Trả về
Trả về giá trị nhận dạng duy nhất mờ cho nhật ký sử dụng.

MarkActive

void MarkActive(
  void
)

Ghi chú hoạt động, nói cách khác 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 không được xác nhận.

Thông tin 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.

Thông tin 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 văn bản tin nhắn trở lại đầu hàng đợi nhận.

Chỉ trình xử lý sự kiện tiếp nhận dữ liệu mới có thể gọi phương thức này để đưa phần dữ liệu chưa được xác nhận vào 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 tiếp 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 lệnh gọi trước đó xác nhận cho phương thức AckReceive(uint16_t len).

Thông tin chi tiết
Các 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 thông báo xác 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 tin nhắn văn bản qua 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.

Thông tin chi tiết
Các tham số
[out] data
Nội dung tin nhắn sẽ gửi.
[out] push
Nếu là true, hãy gửi ngay, nếu không sẽ phải xếp hàng đợi.
Giá trị trả về
INET_NO_ERROR
thành công: đã trích xuất địa chỉ và cổng.
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ờ để Connect thành công hoặc trả về lỗi.

Thông tin chi tiết
Các tham số
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

Đặt tuỳ chọn ổ cắm TCP_USER_TIMEOUT.

TCPEndPoint::SetUserTimeout.

Khi giá trị lớn hơn 0, thẻ này sẽ 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 đóng kết nối tương ứng. Nếu giá trị của quyền chọn được chỉ định là 0, thì TCP sẽ sử dụng giá trị mặc định của hệ thống. Xem RFC 5482 để biết thêm chi tiết.

Thông tin chi tiết
Các 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: đã trích xuất địa chỉ và cổng.
INET_ERROR_NOT_IMPLEMENTED
chưa hoàn tất quá trình 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 hết thời gian chờ của người dùng TCP.

Khi giá trị lớn hơn 0, thẻ này sẽ 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 đóng kết nối tương ứng. Nếu giá trị của quyền chọn được chỉ định là 0, thì TCP sẽ sử dụng chế độ mặc định của hệ thống. 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ần hết thời gian chờ.

Tắt

INET_ERROR Shutdown(
  void
)

Bắt đầu TCP một nửa, nói cách khác là đã hoàn tất việc gửi.

Thông tin chi tiết
Giá trị trả về
INET_NO_ERROR
thành công: đã trích xuất địa chỉ và cổng.
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