Comprendo che un TcpClient è un wrapper attorno alla classe socket e posso accedere al socket sottostante se si utilizza TcpClient, ma cosa fa esattamente il wrapper?Quali sono i vantaggi dell'utilizzo diretto di TcpClient su un socket?
Quando si utilizza TCPClient, devo continuare a chiamare Receive() come faccio con un socket o il wrapper garantisce che vengano visualizzati tutti i miei dati?
Infine, posso usare il TcpClient sia sul server e il client per avvolgere la presa (dopo aver usato TcpListener per accettare la connessione originale sul server)
Ah capisco. Quindi ho ragione nel dire che l'equivalente di eseguire _BeginReceive(), seguito da EndReceive(), memorizzare i byte e richiamare BeginReceive() nuovamente fino a quando il messaggio ricevuto_ su un socket, può essere eseguito usando _myTcpClient.GetStream(). BeginRead() _ su un TcpClient? BeginRead() non chiamerà il callback EndRead() finché il numero specificato di byte ricevuti non sia stato effettivamente ricevuto? (eliminando la necessità di chiamare costantemente BeginRead()/BeginReceive() fino a quando tutti i byte attesi sono stati ricevuti) – Dermot
Preferirei usare i metodi 'Read' e' Write' della classe 'NetworkStream' invece di' BeginRead' e 'EndRead' perché non dovrai chiamare esplicitamente 'BeginRead' e' EndRead' il wrapper lo farebbe per te. Guarda alcuni esempi su internet come questo http://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.getstream.aspx –
Grazie per aver chiarito che per me. – Dermot