Tôi hiểu rằng một TcpClient là một trình bao bọc quanh lớp socket, và tôi có thể truy cập vào socket bên dưới nếu sử dụng TcpClient, nhưng chính xác thì trình bao bọc sẽ làm gì?Lợi ích của việc sử dụng TcpClient qua Socket trực tiếp là gì?
Khi sử dụng TCPClient tôi có cần tiếp tục gọi Receive() như tôi làm với ổ cắm hay trình bao bọc đảm bảo tất cả dữ liệu của tôi xuất hiện không?
Cuối cùng, tôi có thể sử dụng TcpClient trên cả máy chủ và máy khách để bọc các ổ cắm (sau khi sử dụng TcpListener để chấp nhận các kết nối ban đầu trên máy chủ)
Tôi hiểu rồi. Vì vậy, tôi phải nói rằng tương đương với thực hiện _BeginReceive(), tiếp theo EndReceive(), lưu trữ byte và gọi lại BeginReceive() một lần nữa cho đến khi tin nhắn receive_ trên một socket, có thể được thực hiện bằng cách sử dụng _myTcpClient.GetStream(). BeginRead() _ trên một TcpClient? Sẽ BeginRead() không gọi hàm EndRead() cho đến khi nhận được số byte được chỉ định đã thực sự được nhận chưa? (loại bỏ sự cần thiết phải liên tục gọi BeginRead()/BeginReceive() cho đến khi tất cả các byte dự kiến đã nhận được) – Dermot
Tôi muốn sử dụng các phương thức 'Read' và' Write' của lớp 'NetworkStream' thay vì' BeginRead' và 'EndRead' bởi vì bạn sẽ không phải gọi một cách rõ ràng 'BeginRead' và' EndRead' trình bao bọc sẽ làm điều đó cho bạn. Xem một số mẫu trên internet như thế này http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.getstream.aspx –
Cảm ơn bạn đã làm rõ điều đó đối với tôi. – Dermot