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 lược
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 hệ thống dẫn xuất Linux và BSD) hoặc các khối điều khiển giao thức LwIP TCP, khi hệ thống được định cấu hình phù hợp.
Di sản
Kế thừa từ: nl :: Inet :: EndPointBasisCác loại công khai | |
---|---|
@10 { | enum Trạng thái động cơ bản của điểm cuối bên dưới. |
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* 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) | typedefvoid(* 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) | typedefvoid(* 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) | typedefvoid(* 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) | typedefvoid(* Loại chức năng xử lý sự kiện tiếp nhận dữ liệu. |
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) | typedefvoid(* Loại chức năng xử lý sự kiện truyền dữ liệu. |
OnPeerCloseFunct )(TCPEndPoint *endPoint) | typedefvoid(* Loại chức năng xử lý sự kiện tiếp nhận nửa đóng. |
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) | typedefvoid(* Loại TCP SendIdle đã thay đổi chức năng xử lý tín hiệu. |
Thuộc tính công cộng | |
---|---|
OnAcceptError | Đại diệ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 | Đại biểu chức năng xử lý sự kiện thiết lập kết nối của điểm cuối. |
OnConnectionClosed | Đại biểu 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 nhận chức năng xử lý sự kiện. |
OnDataReceived | Đại biểu chức năng xử lý sự kiện tiếp nhận văn bản tin nhắn của điểm cuối. |
OnDataSent | Đại biểu chức năng xử lý sự kiện truyền tải văn bản thông báo của điểm cuối. |
OnPeerClose | Đại biểu chức năng xử lý sự kiện nhận nửa đóng của điểm cuối. |
OnTCPSendIdleChanged | Đại diện chức năng xử lý sự kiện của báo hiệu điểm cuối khi trạng thái không hoạt động của kênh gửi của kết nối TCP thay đổi. |
ReceiveEnabled | bool Công tắc đ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 bên dưới. |
Chức năng công cộng | |
---|---|
Abort (void) | void Nói cách khác, đóng điểm cuối một cách đột ngột, gửi các gói RST. |
AckReceive (uint16_t len) | Xác nhận đã 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 giao diện. |
Close (void) | Nói cách khác, bắt đầu đóng hoàn toàn TCP, kết thúc với 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ùy chọn TCP "keep-living". |
DisableReceive (void) | void Tắt tính năng tiếp nhận. |
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount) | Bật tùy chọn TCP "keep-living". |
EnableNoDelay (void) | EnableNoDelay. |
EnableReceive (void) | void Bật tính năng tiếp nhận. |
Free (void) | void Bắt đầu (hoặc tiếp tục) TCP đóng hoàn toàn, 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ó được thiết lập hay không. |
Listen (uint16_t backlog) | Chuẩn bị điểm cuối để nhận thông điệp TCP. |
LogId (void) | uint16_t Lấy mã định danh cho điểm cuối. |
MarkActive (void) | void Nói cách khác, lưu ý hoạt động, đặt lại bộ hẹn giờ nhàn rỗi. |
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ờ 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 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ả lại lỗi. |
SetUserTimeout (uint32_t userTimeoutMillis) | Đặt tùy chọn ổ cắm TCP TCP_USER_TIMEOUT. |
Shutdown (void) | Nói cách khác, bắt đầu đóng một nửa TCP, nói cách khác, đã hoàn tất quá trình gửi. |
Các loại công khai
@ 10
@10
Trạng thái động cơ bản của điểm cuối bên dưới.
Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", tiến tới các trạng thái tiếp theo tương ứng với sự đơn giản hóa các trạng thái của máy trạng thái truyền tải TCP.
Lưu ý: Việc liệt kê trạng thái kBasisState_Closed
được ánh xạ tới kState_Ready
vì lý do tương thích nhị phân lịch sử. Các hiện kState_Closed
tồn tại để xác định riêng rẽ sự phân biệt giữa "không mở được nêu ra" và "trước đây nay đã mở đóng cửa" đã tồn tại trước đó trong kState_Ready
và kState_Closed
tiểu bang.
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 một chức năng thuộc loại này cho thành viên ủy quyền OnAcceptError
để xử lý các sự kiện lỗi chấp nhận kết nối trên endPoint
. Các err
luận cung cấp chi tiết cụ thể về loại lỗi.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
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 một chức năng thuộc loại này cho thành viên ủy 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 thất bại.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
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 chức năng thuộc loại này cho thành viên ủy 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 kết thúc thành công với thất bại.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
OnConnectionReceiveFunct
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 một chức năng thuộc loại này cho thành viên ủy nhiệm OnConnectionReceived
để xử lý các sự kiện tiếp nhận kết nối trên listeningEndPoint
. Điểm cuối conEndPoint
mới nhận được nằm ở địa chỉ IP peerAddr
và cổng TCP peerPort
.
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
|
OnDataReceiveFunct
void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)
Loại chức năng xử lý sự kiện tiếp nhận dữ liệu.
Cung cấp một chức năng thuộc loại này cho thành viên ủy quyền OnDataReceived
để xử lý các sự kiện nhận dữ liệu trên endPoint
nơi data
là văn bản thông báo nhận được.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
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 bộ đệm dữ liệu cũng phải được gọi trừ khi PutBackReceivedData
được sử dụng thay thế.
OnDataSentFunct
void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
Loại chức năng xử lý sự kiện truyền dữ liệu.
Cung cấp một hàm kiểu này cho thành viên ủy nhiệm 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, đủ điều kiện để gửi bởi ngăn xếp mạng bên dưới.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
OnPeerCloseFunct
void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)
Loại chức năng 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 ủy nhiệm OnPeerClose
để xử lý các sự kiện chấm dứt kết nối trên endPoint
.
Chi tiết | |||
---|---|---|---|
Thông số |
|
OnTCPSendIdleChangedFunct
void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)
Loại TCP SendIdle đã thay đổi chức năng xử lý tín hiệu.
Cung cấp một chức năng thuộc loại này cho thành viên ủy 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 | |||||
---|---|---|---|---|---|
Thông số |
|
Thuộc tính công cộng
OnAcceptError
OnAcceptErrorFunct OnAcceptError
Đại diệ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
Đại biểu chức năng xử lý sự kiện thiết lập kết nối của điểm cuối.
OnConnectionClosed
OnConnectionClosedFunct OnConnectionClosed
Đại biểu chức năng xử lý sự kiện đóng của điểm cuối.
OnConnectionRenition
OnConnectionReceivedFunct OnConnectionReceived
Kết nối của điểm cuối nhận chức năng xử lý sự kiện.
OnDataReceive
OnDataReceivedFunct OnDataReceived
Đại biểu chức năng 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
Đại biểu chức năng xử lý sự kiện truyền tải văn bản thông báo của điểm cuối.
OnPeerClose
OnPeerCloseFunct OnPeerClose
Đại biểu chức năng xử lý sự kiện nhận nửa đóng của điểm cuối.
OnTCPSendIdleChanged
OnTCPSendIdleChangedFunct OnTCPSendIdleChanged
Đại biểu chức năng xử lý sự kiện của báo hiệu điểm cuối khi trạng thái không hoạt động của kênh gửi của kết nối TCP thay đổi.
Điều này được các lớp trên sử dụng để thực hiện các hành động thích hợp dựa trên việc liệu dữ liệu đã gửi đã được phân phối một cách đáng tin cậy cho đồng nghiệp hay chưa.
GetEnabled
bool ReceiveEnabled
Công tắc đ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 bên dưới.
Các đối tượng được khởi tạo ở trạng thái "sẵn sàng", tiến tới các trạng thái tiếp theo tương ứng với sự đơn giản hóa các trạng thái của máy trạng thái truyền tải TCP.
Lưu ý: Việc liệt kê trạng thái kBasisState_Closed
được ánh xạ tới kState_Ready
vì lý do tương thích nhị phân lịch sử. Các hiện kState_Closed
tồn tại để xác định riêng rẽ sự phân biệt giữa "không mở được nêu ra" và "trước đây nay đã mở đóng cửa" đã tồn tại trước đó trong kState_Ready
và kState_Closed
tiểu bang.
Chức năng công cộng
Huỷ bỏ
void Abort( void )
Nói cách khác, đóng điểm cuối một cách đột ngột, gửi các gói RST.
AckReceive
INET_ERROR AckReceive( uint16_t len )
Xác nhận đã nhận nội dung tin nhắn.
Sử dụng phương pháp này để xác nhận việc tiếp nhận tất cả hoặc một phần dữ liệu đã nhận. Ngữ nghĩa hoạt động không được xác định nếu len
lớn hơn tổng dữ liệu nhận được chưa xác nhận chưa xác định.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
Trói buộc
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 giao diện.
Liên kết điểm cuối với địa chỉ IP giao diện mạng được chỉ định.
Chi tiết | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||||||
Giá trị trả lại |
|
Trên LwIP, phương thức này không được gọi với khóa ngăn xếp LwIP đã có.
Đóng
INET_ERROR Close( void )
Nói cách khác, bắt đầu đóng hoàn toàn TCP, kết thúc với cả gửi và nhận.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Giá trị trả lại |
|
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 | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||
Giá trị trả lại |
|
DisableKeepAlive
INET_ERROR DisableKeepAlive( void )
Tắt tùy chọn TCP "keep-living".
TCPEndPoint :: DisableKeepAlive .
Tắt đầu dò lưu giữ TCP trên kết nối TCP được liên kết.
Chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Giá trị trả lại |
|
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 được kết nối. Phương pháp này không có tác dụng gì nếu keepalives chưa được kích hoạt trên điểm cuối.
DisableReceive
void DisableReceive( void )
Tắt tính năng tiếp nhận.
Tắt tất cả các trình xử lý sự kiện. Dữ liệu được gửi đến một điểm cuối vô hiệu hóa 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ùy chọn TCP "keep-living".
TCPEndPoint :: EnableKeepAlive .
Bắt đầu tự động truyền các phân đoạn thăm dò TCP "duy trì sự sống" sau mỗi giây interval
. Kết nối sẽ tự động hủy bỏ 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.
Chi tiết | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||||
Giá trị trả lại |
|
Xem RFC 1122, phần 4.2.3.6 để biết thông tin chi tiết.
Bật các đầu dò lưu giữ 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 được kết nối. Phương pháp này có thể được gọi nhiều lần để điều chỉnh khoảng thời gian lưu trữ hoặc số lượng thời gian chờ.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
EnableNoDelay
INET_ERROR EnableNoDelay( void )
EnableNoDelay.
TCPEndPoint :: EnableNoDelay .
Tắt thuật toán đệm nagle trong TCP bằng cách đặt các tùy chọn ổ cắm TCP_NODELAY.
EnableReceive
void EnableReceive( void )
Bật tính năng tiếp nhận.
Bật tất cả các trình xử lý sự kiện. Dữ liệu được gửi đến một điểm cuối vô hiệu hóa 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) TCP đóng hoàn toàn, bỏ qua lỗi.
Đối tượng được trả về nhóm miễn phí và tất cả các tham chiếu người dùng còn lại sau đó 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ộ.
Không sử dụng giá trị con trỏ NULL
cho một trong hai đối số.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
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.
Không sử dụng giá trị con trỏ NULL
cho một trong hai đối số.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
Đã kết nối
bool IsConnected( void ) const
Trích xuất xem kết nối TCP có được thiết lập hay không.
Nghe
INET_ERROR Listen( uint16_t backlog )
Chuẩn bị điểm cuối để nhận thông điệp TCP.
Nếu State
đã là kState_Listening
, thì không có hoạt động nào được thực hiện, nếu không thì State
được đặt thành kState_Listening
và điểm cuối được chuẩn bị để nhận các thông điệp TCP, theo ngữ nghĩa của nền tảng.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
| ||||
Giá trị trả lại |
|
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 là cố định; chỉ có thể chấp nhận một kết nối tại một thời điểm).
Trên các hệ thống LwIP, phương thức này không được gọi với khóa ngăn xếp LwIP đã có
LogId
uint16_t LogId( void )
Lấy mã định danh cho điểm cuối.
Chi tiết | |
---|---|
Lợi nhuận | Trả về số 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, lưu ý hoạt động, đặt lại bộ hẹn giờ nhàn rỗi.
Đặt lại bộ hẹn giờ nhàn rỗi 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 | |
---|---|
Lợi nhuận | Số byte trong hàng đợi nhận chưa được xác nhận với AckReceive(uint16_t len) . |
PendingSendLength
uint32_t PendingSendLength( void )
Trích xuất độ dài của dữ liệu đang chờ truyền đầu tiên.
Chi tiết | |
---|---|
Lợi nhuận | Số byte chưa được truyền trong hàng đợi truyền. |
PutBackReceiveData
INET_ERROR PutBackReceivedData( Weave::System::PacketBuffer *data )
Đẩy văn bản tin nhắn trở lại đầu hàng đợi nhận.
Phương thức này chỉ có thể được gọi bởi bộ xử lý sự kiện tiếp nhận dữ liệu để đưa một phần dữ liệu chưa được xác nhận trở lại hàng đợi nhận. Ngữ nghĩa hoạt động không được xác định nếu trình 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 các byte được xác nhận bởi a gọi trước phương thức AckReceive(uint16_t len)
.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
| ||||
Giá trị trả lại |
|
Gửi
INET_ERROR Send( Weave::System::PacketBuffer *data, bool push )
Gửi tin nhắn văn bả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 thành công hay thất bại.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
| ||||
Giá trị trả lại |
|
SetConnectTimeout
void SetConnectTimeout( const uint32_t connTimeoutMsecs )
Đặt thời gian chờ để Kết nối thành công hoặc trả lại lỗi.
Chi tiết | |||
---|---|---|---|
Thông số |
|
SetUserTimeout
INET_ERROR SetUserTimeout( uint32_t userTimeoutMillis )
Đặt tùy chọn ổ cắm TCP TCP_USER_TIMEOUT.
TCPEndPoint :: SetUserTimeout .
Khi giá trị lớn hơn 0, nó chỉ định lượng thời gian tối đa tính bằng mili giây mà dữ liệu đã 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ị tùy chọn được chỉ định là 0, 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.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
Đặt tùy chọn ổ cắm thời gian chờ của người dùng TCP.
Khi giá trị lớn hơn 0, nó chỉ định lượng thời gian tối đa tính bằng mili giây mà dữ liệu đã 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ị tùy chọn được chỉ định là 0, TCP sẽ sử dụng 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 được kết nối. Phương pháp này có thể được gọi nhiều lần để điều chỉnh khoảng thời gian lưu trữ 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 TCP, nói cách khác, đã hoàn tất quá trình gửi.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Giá trị trả lại |
|