Entiendo que un TcpClient es un envoltorio alrededor de la clase de socket, y puedo acceder al socket subyacente si uso el TcpClient, pero ¿qué hace exactamente el wrapper?¿Cuáles son los beneficios de usar TcpClient en un Socket directamente?
Al usar TCPClient, ¿debo seguir llamando a Receive() como hago con un socket o el wrapper asegura que todos mis datos aparezcan?
Por último, puedo usar la TcpClient tanto en el servidor y el cliente para envolver el zócalo (después de usar TcpListener para aceptar la conexión original en el servidor)
Ah, ya veo. Así que estoy en lo cierto al decir que el equivalente de ejecutar _BeginReceive(), seguido de EndReceive(), almacenar bytes y recuperar BeginReceive() nuevamente hasta que se reciba el mensaje_ en un socket, se puede realizar usando _myTcpClient.GetStream(). BeginRead() _ en un TcpClient? Will BeginRead() no llamará a la devolución de llamada EndRead() hasta que se haya recibido la cantidad de bytes especificada recibida? (eliminando la necesidad de llamar constantemente a BeginRead()/BeginReceive() hasta que se hayan recibido todos los bytes esperados) – Dermot
Preferiría usar los métodos 'Read' y' Write' de la clase 'NetworkStream' en lugar de' BeginRead' y 'EndRead' porque no tendrá que llamar explícitamente a 'BeginRead' y' EndRead', el contenedor lo haría por usted. Vea algunas muestras en Internet como esta http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.getstream.aspx –
Gracias por aclarar eso para mí. – Dermot