Возможно ли преобразование между объектами Socket и TcpClient?
-
03-07-2019 - |
Вопрос
Вот еще один вопрос на C # / .NET, основанный просто на любопытстве, а не на непосредственном потребность ...
Если бы у вас был Socket
экземпляр, и вы хотели обернуть его в более высокоуровневый TcpClient
класс, возможно ли это и как бы вы это сделали?
И наоборот, если у вас есть экземпляр TcpClient
, возможно ли получить лежащий в основе Socket
?
Решение
Если бы у вас был экземпляр сокета, и вы хотели бы обернуть его в класс TcpClient более высокого уровня возможно ли это и как бы вы это сделали?
Socket socket = ...;
TcpClient client = new TcpClient();
client.Client = socket;
И наоборот, если у вас есть экземпляр TcpClient, возможно ли получить базовый сокет?
Получите базовый сокет, используя TcpClient.Клиент собственность.
Другие советы
Перейти от TcpClient к сокету очень просто. tcpClientInstance.Client
является базовым экземпляром сокета.